5.1 SQL*Plus启动与关闭
SQL*Plus是实用程序sqlplus.exe(DOS命令行格式)和sqlplus.exe(Windows GUI格式)的统称,这两个程序界面风格不同,但它们的操作方法、命令和输出格式基本一样。
5.1.1 基于DOS方式的启动与关闭
(1)单击“开始”菜单,选择“运行”选项,在运行对话框里键入cmd,一进入DOS控制台以后在提示符下键入sqlplus-?。出现如图5-1所示的画面。
图5-1 SQL*Plus的在线帮助
SQL*Plus程序的语法格式为:
SQLPLUS[〈option〉][logon][@〈file〉[.ext]
[<param1><param2>…]]
其中,<option>选项说明SQL*Plus的启动方式,其语法格式为:
{-1-?-s[ilent]}
-?或者-H要求显示SQL*Plus程序的使用语法。
-V显示SQL*Plus版本号。例如,作者执行sqlplus-V命令所显示的SQL*Plus程序版本号如图5-2所示。
图5-2 查询版本号
-s[ilent]参数要求以哑模式启动和运行SQL*Plus。在这种模式下,SQL*Plus在启动和运行过程中不显示提示住处和说明性内容,其中包括SQL*Plus的提示符(SQL>)。哑模式适合在其他应用程序中调用SQL*Plus,这使用户感觉不到SQL*Plus多余的显示信息。
<logon>参数也为选项,它指出SQL*Plus是否连接数据库,以及连接参数。省略该项时,SQL*Plus在启动过程中将以交互方式提示用户输入连接账户名及其口令等。<logon>参数的语法格式为:
<username>[/<password>][@<connect_string>]//nolog
其中,<username>[/<password>][@<connect_string>]参数字符串说明SQL*Plus所连接数据库的网络服务名称connect-string,以及建立连接时所使用的用户账户username和口令password。/说明用户使用操作系统认证方式自动连接数据库。采用自动登录方式时,需要在数据库中为Windows NT或Windows 98/95操作系统用户(USERNAME)建立一个账户,账户名称为<PREFIX>。
USERNAME,其中账户名称前缀部分<PREFIX>应与数据库初始化参数文件中的OS-AUTHENT-PREFIX参数值相同。
/nolog说明只启动SQL*Plus程序,而不建立与具体Oracle数据库的连接。以这种方式启动SQL*Plus后,用户在执行所有数据库操作之前必须使用SQL*Plus的CONNECT命令建立与数据库的有效连接。SQL*Plus的最后一个参数[@<file>[.ext][<paraml><param2>]…]设置Sql*Plus程序启动文件名称参数,当SQL*Plus启动后立即执行该命令文件。启动文件的作用与SQL*Plus的START命令作用相同。其中,file说明命令文件名称。
ext指出命令文件扩展名,默认时文件扩展名为.sql。
paraml、param2、……说明命令文件所使用的参数值,在启动文件内使用&1、&2…….等分别引用第一、二、……个参数值。
(2)下面命令使用scott账户(口令为tiger)连接Myoracle数据库。
sqlplus scott/tiger@myoracle
运行结果如图5-3所示。
图5-3 连接到数据库
(3)在SQL提示符下使用输入查询语句“select 2 from scott.emp;”,执行结果如图5-4所示。注意,在SQL语法中,;(分号)是语句结束的标志。
图5-4 执行查询语句
(4)执行完毕后,输入quit或者exit命令返回DOS控制台,如图5-5所示。
图5-5 返回DOS控制台
5.1.2 基于Windows方式的启动与关闭
(1)单击“开始”按钮,在程序组中选择\Oracle-OraHome92\Application Development\SQL Plus选项,打开如图5-6所示对话框。
图5-6 SQL*Plus登录对话框
在用户名称文本框输入scott,在口令文本框中输入tiger,在主机字符串栏中填人数据库别名。如果省略了主机字符串,SQL Plus会试图连接到在变量ORACLE_SID中定义的本地数据库。
(2)成功连接数据库后出现如图5-7所示界面,在菜单栏里有一些常见的菜单命令可以帮助执行并保存SQL查询语句。
图5-7 连接到数据库
(3)输入查询语句“select﹡from scott.emp;”,结果如图5-8所示。
图5-8 执行查询语句
(4)使用disconnect命令中断与数据库的会话连接;如果要再次连接,可以使用connect命令。执行结果如图5-9所示。
图5-9 断开连接和再次连接
(5)如果想更改口令,可以使用PASSWORD命令。相关的口令不会在屏幕上回显出来(如图5-10所示)。用户名参数是可选的。如果没有包含用户名参数,则此命令会更改当前用户的口令。如果想更改另一个用户的口令,必须有ALTERUSER特权。
图5-10 更改用户口令
(6)如果想从SQL*Plus中退出,在SQL提示符下输入quit或者exit返回到Windows状态。quit和exit是同义词。
5.1.3 关闭SQL*Plus
执行SQL﹡Plus命令EXIT或QUIT即可退出SQL*Plus,该命令完整的语法格式为:
{EXIT│QUIT}[SUCCESS│FAILURE│WARNING│n│variable│:BindVariable]
[COMMIT│ROLLBACK]
其中:
SUCCESS:说明程序正常退出。
FAILURE:说明程序执行失效而退出,并返回一个错误代码。
WARNING:指示程序退出,并返回警告代码。
N:为整数,它是程序所返回的代码。
Variable:为用户定义变量或系统变量,其值作为SQL*Plus的返回码。
:BindVariable:为SQL*Plus的VARIABLE命令所定义的变量,其值也可作为SQL*Plus的返回码。
COMMIT和ROLLBACK:分别说明在SQL*Plus退出时提交或回滚SQL*Plus对数据库已做的修改操作,COMMIT为EXIT命令的默认取值。
例如,下面命令将变量ErrCode值作为错误代码返回,并提交所有未提交的事务:
EXIT ErrCode
除EXITT和QUIT命令外,执行WHENEVER SQLERROR命令也可以使SQL*PIus在遇到任何SQL或PL/SQL语句错误时退出(WHENEVER SQLERROR命令对SQL*PIus命令错误无效)。WHENEVER SQLERROR命令的语法格式为:
WHENEVER SQLERROR
{EXIT[SUCCESS│FAILURE│WARNING│n│variable│:BindVariable]
[COMMIT│ROLLBACK]
│
CONTINUE[COMMIT│ROLLBACK│NONE]}
其中,EXIT子句使SQL*Plus在遇到SQL或PL/SQL语句错误时停止执行其后的所有命令或语句而立即退出,EXIT子句中各选项的作用与EXIT命令中的对应选项相同。
CONTINUE子句的作用是关闭EXIT子句,它使SQL*Plus在遇到SQL或PL/SQL语句错误时继续执行,但其中的COMMIT和ROLLBACK选项分别要求SQL*Plus在继续执行前要执行COMMIT或ROLLBACK语句来提交或回滚提交的事务,而NONE选项则指示SQL*Plus继续之前不执行其他任何操作。
下面命令说明WHENEVER SQLERROR命令的使用方法,它要求SQL*Plus在遇到SQL或PL/SQL语句错误时退出,并返回执行最后一个语句所产生的错误代码:
WHENEVER SQLERROR EXIT SQL.SQLCODE
SELECT*FROM dept;
SELECT*FROM dep;
SELECT*FROM dept;
上面命令文件的在DOS界面的SQL Plus执行结果如图5-11所示(在Windows中的SQL*Plus执行会自动返回Windows,而看不到执行结果),由于其中第二条SQL语句存在错误,所以SQL*Plus执行该语句后立即退出,而使第三条SQL语句未得到执行。
图5-11 WHENEVER SQLERROR命令的执行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。