QL语言中结合了结构化过程语言成分的准第四代语言。
使用PL/SQL的目的:
由于大多数PL/SQL是在服务端来运行,这样可减少由客户端运行程序时所需的网络数据流量。
可以使用PL/SQL的地方:
l PL/SQL可以单独进行程序的编写,完成一般的处理功能;
l 在高级语言中可嵌入PL/SQL 块;
l 在4GL中可以嵌入PL/SQL 块;
l 在PL/SQL程序中可以嵌入HTML和XML。
§1.4 登录到SQL*PLUS
我们创建任何对象,如创建表、索引等都需要连接到Oracle中,这里用“登录”主要是Oracle的界面提供的是Login 这样的叫法。其实就是连接的意思。在Client/Server结构下,Oracle提供两种方式连接SQL*PLUS,其中SQL*NET V2.x 版本(目前版本不再使用SQL*NET V2.x)提供在字符方式下连接到SQL*PLUS,SQL*NET V2. x版本提供在图形方式(Window)使用,目前版本的ORACLE8/8i 都使用NET8 连接.(NET8 不再支持字符终端)
§1.4.1UNIX环境
在UNIX下,要确保客户端或服务器端与Oracle服务器系统进行连接,必须保证tnsnames.ora和listener.ora两个参数文件的正确配置。详细的配置解释在DBA章节里解释。下面是tnsnames.ora和listener.ora两个参数文件的内容显示。
1. tnsnames.ora参数文件:
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = s450)
(PRESENTATION = http://admin)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
S450 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = s450)
)
)
2. listener.ora参数文件:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/app/oracle/product/8.1.7)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = s450)
(ORACLE_HOME = /home/oracle/app/oracle/product/8.1.7)
(SID_NAME = s450)
)
)
如果安装后已经正确地对上面的两个参数文件进行配置,则可以按照下面步骤进行登录:
1)先启动服务器端监听器:
lsnrctl start
2)用下面命令显式登录到SQL*PLUS:
$sqlplus username/password
或
$SQLPLUS username/password@connect_string
3)用下面命令隐式登录到SQL*PLUS:
$sqlplus [enter]
Enter user name:scott
Enter password:******
§1.4.2Windows NT和WINDOWS/2000环境
在NT/2000环境下,要使客户端能与Oracle服务器进行连接,tnsnames.ora和listener.ora参数文件的配置如下:
1. tnsnames.ora参数文件:
ORA816.TAIJI.COM.CN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhao)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora816)
)
)
EXTPROC_CONNECTION_DATA.TAIJI.COM.CN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
S450 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsvr)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = s450)
)
)
2. listener.ora参数文件:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhao)(PORT = 1521))
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS = (PROTOCOL = TCP)(HOST = zhao)(PORT = 2481))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ora816)
(ORACLE_HOME = D:\oracle)
(SID_NAME = ora816)
)
)
Windows NT/2000字符方式登录步骤:
1)先启动服务器端监听器:
lsnrctl start
2)用下面命令显式登录到SQL*PLUS:
$sqlplus username/password
或
$SQLPLUS username/password@connect_string
Windows NT/2000图形方式登录步骤:
1)点击“开始”=》“程序”=》“Oracle –Ora