ommit 之后使用rollback 可以恢复mit心电数据库到修改之前吗

4146人阅读
ORACLE(5)
iSQL*Plus 命令语法
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
@ (&at&符号) 语法
@{url[.ext] } [arg...]
调用并运行由来自 Web 服务器的 URL 指定的脚本。
可以运行 URL 指定的名为 YEAREND 的脚本,并以通常方法将值传递到 YEAREND 中引用的变量:
@HTTP://machine_name.domain:port/YEAREND.SQL VAL1 VAL2@FTP://machine_name.domain:port/YEAREND.SQL VAL1 VAL2
在为处理 SQL 报告而配置的 Web 服务器上,可以使用以下命令请求 SQL*Plus 执行动态脚本:
@HTTP://machine_name.domain:port/SCRIPTSERVER?ENDOFYEAR VAL1 VAL2
--------------------------------------------------------------------------------
@@ (两个&at&符号) 语法
@@{url | file_name[.ext] } [arg...]
运行脚本。此命令与 @ (&at&符号) 命令几乎相同。运行嵌套的脚本时,它在调用脚本的 url 中查找嵌套的脚本。
假定使用以下名为 PRINTRPT 的脚本:
SELECT DEPARTMENT_ID, CITY FROM EMP_DETAILS_VIEW WHERE SALARY&12000;@EMPRPT.SQL@@ WKRPT.SQL
假定脚本 PRINTRPT 位于 Web 服务器上,并且您使用 START
运行该脚本。当它执行到 @ 命令时,将在当前的工作目录中查找名为 EMPRPT 的脚本并运行该脚本。当 PRINTRPT 执行到 @@ 命令时,将在 PRINTRPT 所使用的同一 url () 中查找名为 WKRPT 的脚本,并运行该脚本。
--------------------------------------------------------------------------------
/ (斜杠) 语法
执行存储在 SQL 缓冲区中的最近执行过的 SQL 命令或 PL/SQL 块。
键入以下 SQL 脚本:
SELECT CITY, COUNTRY_NAMEFROM EMP_DETAILS_VIEWWHERE SALARY=12000;输入斜杠 (/) 重新执行缓冲区中的命令:
/CITY&&&&&&&&&&&&&&&&&&&&&&&&&& COUNTRY_NAME------------------------------ ----------------------------------------Seattle&&&&&&&&&&&&&&&&&&&&&&& United States of AmericaOxford&&&&&&&&&&&&&&&&&&&&&&&& United KingdomSeattle&&&&&&&&&&&&&&&&&&&&&&& United States of America&
--------------------------------------------------------------------------------
ACCEPT 语法
ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]
读取一行输入,并将其存入给定的替代变量中。
要显示提示&Password: &,并将回答放入名为 PSWD 的 CHAR 变量中,并且禁止显示,请输入
ACCEPT pswd CHAR PROMPT 'Password: ' HIDE要显示提示&Enter weekly salary: &并将回答放入名为 SALARY 的 NUMBER 变量中,并使用默认值 000.0,请输入
ACCEPT salary NUMBER FORMAT '999.99' DEFAULT '000.0' -PROMPT 'Enter weekly salary:& '要显示提示&Enter date hired: &并将回答放入 DATE 变量 HIRED 中,所用格式为&dd/mm/yyyy&,默认值为&01/01/2003&,请输入
ACCEPT hired DATE FORMAT 'dd/mm/yyyy' DEFAULT '01/01/2003'-PROMPT 'Enter date hired:& '要显示提示&Enter employee lastname:&并将回答放入名为 LASTNAME 的 CHAR 变量中,请输入
ACCEPT lastname CHAR FORMAT 'A20' -PROMPT 'Enter employee lastname:& '
--------------------------------------------------------------------------------
ARCHIVE LOG 语法
ARCHIVE LOG {LIST | STOP} | {START | NEXT | ALL | integer } [TO destination]
启动或停止自动归档联机重做日志文件,手动 (显式) 归档指定的重做日志文件,或者显示有关重做日志文件的信息。
要使用在 LOG_ARCHIVE_DEST 中指定的归档目标来启动归档过程并开始自动归档,请输入
ARCHIVE LOG START要停止自动归档,请输入
ARCHIVE LOG STOP要将序列号为 1001 的日志文件组归档到指定的目标,请输入
ARCHIVE LOG 1001 '/vobs/oracle/dbs/arch'&arch&指定目标设备上文件名的前缀,文件名的其余部分取决于初始化参数 LOG_ARCHIVE_FORMAT,该参数指定了归档重做日志文件的文件名格式。
--------------------------------------------------------------------------------
ATTRIBUTE 语法
ATTRIBUTE [type_name.attribute_name [option ...]]
其中,option 代表以下子句之一:
ALI[AS] alias
FOR[MAT] format
LIKE {type_name.attribute_name | alias}
指定&对象类型&列的指定属性的显示特性,如 NUMBER 数据的格式。列和属性在共享公共的名称空间时,它们的名称应不同。
还列出单个属性或所有属性的当前显示特性。
要将对象类型 EMPLOYEE_TYPE 的 LAST_NAME 属性设置为 20 个字符宽,请输入
ATTRIBUTE EMPLOYEE_TYPE.LAST_NAME FORMAT A20要设置对象类型 EMPLOYEE_TYPE 的 SALARY 属性的格式,以便在显示百万美元时四舍五入到分,使用逗号作为千位分隔符,并且当值为零时显示 $0.00,请输入
ATTRIBUTE EMPLOYEE_TYPE.SALARY FORMAT $9,999,990.99
--------------------------------------------------------------------------------
BREAK 语法
BRE[AK] [ON report_element [action [action]]] ...
其中 report_element 的语法为 {column|expr|ROW|REPORT}
action 的语法为 [SKI[P] n|[SKI[P]] PAGE] [NODUP[LICATES]|DUP[LICATES]]
指定报告中进行更改的位置和要执行的格式化操作,例如:
禁止显示给定列的重复值
每次更改给定列值时跳过一行 (在 iSQL*Plus 中,只有当&预设格式的输出&为&启用&时才执行此操作)
每次更改给定列值时或者在报告的末尾打印算出的数字。
输入不带子句的 BREAK 可以列出当前的 BREAK 定义。
要生成一个报告,用于打印重复的职务值、SALARY 平均值,同时还打印 SALARY 总和,则可以输入以下命令。(本示例仅选择部门 50 和 80 以及职员和销售人员的职务。)
BREAK ON DEPARTMENT_ID ON JOB_ID DUPLICATESCOMPUTE SUM OF SALARY ON DEPARTMENT_IDCOMPUTE AVG OF SALARY ON JOB_IDSELECT DEPARTMENT_ID, JOB_ID, LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE JOB_ID IN ('SH_CLERK', 'SA_MAN')AND DEPARTMENT_ID IN (50, 80)ORDER BY DEPARTMENT_ID, JOB_ID;DEPARTMENT_ID JOB_ID&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------- ---------- ------------------------- ----------&&&&&&&&&& 50 SH_CLERK&& Taylor&&&&&&&&&&&&&&&&&&&&&&&&& 3200&&&&&&&&&&&&& SH_CLERK&& Fleaur&&&&&&&&&&&&&&&&&&&&&&&&& 3100&&&&&&&&&&&&&&&& .&&&&&&&&&&&&&&&& .&&&&&&&&&&&&&&&& .&&&&&&&&&&&&& SH_CLERK&& Gates&&&&&&&&&&&&&&&&&&&&&&&&&& 2900
DEPARTMENT_ID JOB_ID&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------- ---------- ------------------------- ----------&&&&&&&&&& 50 SH_CLERK&& Perkins&&&&&&&&&&&&&&&&&&&&&&&& 2500&&&&&&&&&&&&& SH_CLERK&& Bell&&&&&&&&&&&&&&&&&&&&&&&&&&& 4000&&&&&&&&&&&&&&&& .&&&&&&&&&&&&&&&& .&&&&&&&&&&&&&&&& .&&&&&&&&&&&&& SH_CLERK&& Grant&&&&&&&&&&&&&&&&&&&&&&&&&& 2600&&&&&&&&&&&&& **********&&&&&&&&&&&&&&&&&&&&&&&&&& ----------&&&&&&&&&&&&& avg&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 3215
DEPARTMENT_ID JOB_ID&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------- ---------- ------------------------- ----------
*************&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ----------sum&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 64300
&&&&&&&&&& 80 SA_MAN&&&& Russell&&&&&&&&&&&&&&&&&&&&&&& 14000&&&&&&&&&&&&& SA_MAN&&&& Partners&&&&&&&&&&&&&&&&&&&&&& 13500&&&&&&&&&&&&& SA_MAN&&&& Errazuriz&&&&&&&&&&&&&&&&&&&&& 12000&&&&&&&&&&&&& SA_MAN&&&& Cambrault&&&&&&&&&&&&&&&&&&&&& 11000&&&&&&&&&&&&& SA_MAN&&&& Zlotkey&&&&&&&&&&&&&&&&&&&&&&& 10500&&&&&&&&&&&&& **********&&&&&&&&&&&&&&&&&&&&&&&&&& ----------&&&&&&&&&&&&& avg&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 12200
DEPARTMENT_ID JOB_ID&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------- ---------- ------------------------- ----------
*************&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ----------sum&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 61000
25 rows selected.&
--------------------------------------------------------------------------------
BTITLE 语法
BTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
其中,printspec 代表以下一个或多个用于放置文本并设置格式的子句:
FORMAT text
S[KIP] [n]
将指定标题放在每页报告的底部并设置其格式,或者列出当前的 BTITLE 定义。
要设置底部标题,CORPORATE PLANNING DEPARTMENT 在左侧而日期在右侧,请输入
BTITLE LEFT 'CORPORATE PLANNING DEPARTMENT' -RIGHT '1 JAN 2001'
要将第 50 列的底部标题设置为&CONFIDENTIAL&,并且后面紧跟
六个空格和
一个日期,请输入
BTITLE COL 50 'CONFIDENTIAL'TAB 6'1 JAN 2001'
--------------------------------------------------------------------------------
CLEAR 语法
CL[EAR] option ...
其中,option 代表以下子句之一:
COMP[UTES]
重置或清除指定选项的当前值或设置。
要清除中断,请输入
CLEAR BREAKS要清除列定义,请输入
CLEAR COLUMNS
--------------------------------------------------------------------------------
COLUMN 语法
COL[UMN] [{column | expr} [option ...]]
其中,option 代表以下子句之一:
ALI[AS] alias
ENTMAP {ON | OFF}
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT] | C[ENTER] | R[IGHT]}
LIKE {expr | alias}
NEW_V[ALUE] variable
NOPRI[NT] | PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]
指定给定列的显示属性,如
列标题的文本
列标题的对齐方式
NUMBER 数据的格式
列数据的换行
还列出单个列或所有列的当前显示属性。
表 5-1 列出了可以在 COLUMN FORMAT 子句中和在 SET NUMFORMAT 中使用的格式。
元素& 示例& 说明& , (逗号)& 9,999&在指定位置显示逗号。& . (句点)& 99.99&显示用于将数字的整数部分和小数部分隔开的句点 (小数点)。& $ &$9999&显示前导美元符号。& 0& &显示前导零。显示尾随零。& 9& 9999&以 9 的个数所指定的位数来显示值。如果值为正,则有前导空格,如果为负,则有前导减号。前导零显示为空格,值为零则显示零 (0)。& B& B9999&当整数部分为零时,不考虑格式模型中的零,将定点数的整数部分显示为空格。& C& C999&在指定位置显示 ISO 货币符号。& D& 99D99&显示小数字符以分隔数字的整数部分和小数部分。& EEEE& 9.999EEEE&以科学记数法 (格式必须准确包含四个&E&) 显示值。& G& 9G999&在数字整数部分的指定位置上显示组分隔符。& L& L999&在指定位置显示本地货币符号。& MI& 9999MI&在负值后面显示尾随减号,在正值后面显示尾随空格。& PR& 9999PR&在 &尖括号& 中显示负值。用前导空格和尾随空格显示正值。& RN rn& RN rn&显示大写罗马数字。显示小写罗马数字。值可以是 1 至 3999 之间的整数。& S& SS&显示前导减号或加号。显示尾随减号或加号。& TM& TM&显示可能的最少个数的十进制字符。默认值是 TM9。固定记数法用于输出最多 64 个字符,科学记数法用于输出超过 64 个字符。TM 的前面不能有任何其它元素。TM 后面只能有一个 9 或 E& U& U9999&在指定位置显示双货币符号。& V& 999V99&显示乘以 10n 的值,其中 n 是 V 后面的 9 的个数。& X& XXXX xxxx&显示将值按指定位数四舍五入后的十六进制值。&
要使 LAST_NAME 列的宽度为 20 个字符,并用两行显示 EMPLOYEE NAME 作为列标题,请输入
COLUMN LAST_NAME FORMAT A20 HEADING 'EMPLOYEE|NAME'要设置 SALARY 列的格式,以百万美元显示,四舍五入到分,使用逗号分隔千分位,并且在值为零时显示 $0.00,请输入
COLUMN SALARY FORMAT $9,999,990.99要为包含长表达式的列分配别名 NET,以美元格式显示结果并对空值显示 &NULL&,则可以输入
COLUMN SALARY+COMMISSION_PCT+BONUS-EXPENSES-INS-TAX ALIAS NETCOLUMN NET FORMAT $9,999,999.99 NULL '&NULL&'注意,本例中将此列说明分成两个命令。第一个命令定义别名 NET,而第二个命令使用 NET 定义其格式。
还要注意,第一个命令中输入的表达式必须与 SELECT 命令中输入的表达式完全相同。否则,SQL*Plus 无法将 COLUMN 命令与相应的列匹配起来。
要对名为 REMARKS 的列中的长值换行,可以输入
COLUMN REMARKS FORMAT A20 WRAPCUSTOMER&&&& DATE&&&&&&& QUANTITY REMARKS----------&& ---------&& -------- --------------------123&&&&&&&&& 25-AUG-&&&&& This order must be s&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& hipped by air freigh&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& t to ORD&
要在顶部标题打印当前的日期和每个职务的名称,请输入以下内容。此处使用 HR 方案中的 EMPLOYEES 表而不是 EMP_DETAILS_VIEW。
COLUMN JOB_ID NOPRINT NEW_VALUE JOBVARCOLUMN TODAY& NOPRINT NEW_VALUE DATEVARBREAK ON JOB_ID SKIP PAGE ON TODAYTTITLE CENTER 'Job Report' RIGHT DATEVAR& SKIP 2 -LEFT 'Job:&&&& ' JOBVAR SKIP 2SELECT TO_CHAR(SYSDATE, 'MM/DD/YYYY') TODAY,LAST_NAME, JOB_ID, MANAGER_ID, HIRE_DATE, SALARY, DEPARTMENT_IDFROM EMPLOYEES WHERE JOB_ID IN ('MK_MAN', 'SA_MAN')ORDER BY JOB_ID, LAST_NAME;&
要将 DATE 列的默认格式更改为&YYYY-MM-DD&,可以输入
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';Session altered.&
有关 ALTER SESSION 命令的信息,请参阅 Oracle Database SQL Reference。
--------------------------------------------------------------------------------
COMPUTE 语法
COMP[UTE] [function [LAB[EL] text] ... OF {expr | column | alias} ... ON {expr | column | alias | REPORT | ROW} ...]
与 BREAK 命令结合,通过对所选行的子集使用各种标准计算来计算和打印汇总行。同时还列出所有的 COMPUTE 定义。
要使用计算标签&TOTAL&小计&account manager&AC_MGR 和&salesman&SA_MAN 职务类别的薪水,请输入
BREAK ON JOB_ID SKIP 1;COMPUTE SUM LABEL 'TOTAL' OF SALARY ON JOB_ID;SELECT JOB_ID, LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE JOB_ID IN ('AC_MGR', 'SA_MAN')ORDER BY JOB_ID, SALARY;JOB_ID&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY---------- ------------------------- ----------AC_MGR&&&& Higgins&&&&&&&&&&&&&&&&&&&&&&& 12000**********&&&&&&&&&&&&&&&&&&&&&&&&&& ----------TOTAL&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 12000SA_MAN&&&& Zlotkey&&&&&&&&&&&&&&&&&&&&&&& 10500&&&&&&&&&& Cambrault&&&&&&&&&&&&&&&&&&&&& 11000&&&&&&&&&& Errazuriz&&&&&&&&&&&&&&&&&&&&& 12000&&&&&&&&&& Partners&&&&&&&&&&&&&&&&&&&&&& 13500&&&&&&&&&& Russell&&&&&&&&&&&&&&&&&&&&&&& 14000**********&&&&&&&&&&&&&&&&&&&&&&&&&& ----------TOTAL&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 61000
6 rows selected.&
要计算行政和财务部门的平均薪水和最高薪水,请输入
BREAK ON DEPARTMENT_NAME SKIP 1COMPUTE AVG LABEL 'Dept Average' -&&&&&&& MAX LABEL 'Dept Maximum' -&&&&&&& OF SALARY ON DEPARTMENT_NAMESELECT DEPARTMENT_NAME, LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE DEPARTMENT_NAME IN ('Executive', 'Accounting')ORDER BY DEPARTMENT_NAME;DEPARTMENT_NAME&&&&&&&&&&&&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------------------------ ------------------------- ----------Accounting&&&&&&&&&&&&&&&&&&&& Higgins&&&&&&&&&&&&&&&&&&&&&&& 12000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Gietz&&&&&&&&&&&&&&&&&&&&&&&&&& 8300******************************&&&&&&&&&&&&&&&&&&&&&&&&&& ----------Dept Average&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 10150Dept Maximum&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 12000
Executive&&&&&&&&&&&&&&&&&&&&& King&&&&&&&&&&&&&&&&&&&&&&&&&& 24000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Kochhar&&&&&&&&&&&&&&&&&&&&&&& 17000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& De Haan&&&&&&&&&&&&&&&&&&&&&&& 17000******************************&&&&&&&&&&&&&&&&&&&&&&&&&& ----------Dept Average&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Dept Maximum&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 24000&
要计算部门 &= 20 的薪水总和但不打印计算标签,请输入
COLUMN DUMMY NOPRINTCOMPUTE SUM OF SALARY ON DUMMYBREAK ON DUMMY SKIP 1SELECT DEPARTMENT_ID DUMMY, DEPARTMENT_ID, LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE DEPARTMENT_ID &= 20ORDER BY DEPARTMENT_ID;DEPARTMENT_ID LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------- ------------------------- ----------&&&&&&&&&& 10 Whalen&&&&&&&&&&&&&&&&&&&&&&&&& 4400&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ----------&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 4400
&&&&&&&&&& 20 Hartstein&&&&&&&&&&&&&&&&&&&&& 13000&&&&&&&&&& 20 Fay&&&&&&&&&&&&&&&&&&&&&&&&&&&& 6000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ----------&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 19000&
--------------------------------------------------------------------------------
CONNECT 语法
CONN[ECT] [{ logon | / } [AS {SYSOPER | SYSDBA}]]
其中 logon 的语法为 username[/password] [@connect_identifier]
将给定的用户名连接到 Oracle 数据库。运行 CONNECT 命令时,将执行站点概要文件 glogin.sql。
如果初始连接不成功,CONNECT 不会重新提示输入用户名或口令。
以纯文本包含口令有安全风险。通过省略口令,只在系统提示输入时才输入它,可避免此风险。 &
要通过 Oracle Net 以用户名 HR 连接到 Oracle Net 别名为 FLEETDB 的数据库,请输入
有关设置口令文件的详细信息,请参阅 Oracle Database Administrator's Guide。
--------------------------------------------------------------------------------
DEFINE 语法
DEF[INE] [variable] | [variable = text]
指定用户或预定义的变量并为其赋一个 CHAR 值,或者列出单个变量或所有变量的值和变量类型。
要给变量 POS 赋值 MANAGER,则键入:
DEFINE POS = MANAGER如果要执行的命令包含对 &POS 的引用,则 SQL*Plus 用值 MANAGER 替换 &POS,并且不提示您输入 POS 值。
要将 CHAR 值 20 赋给变量 DEPARTMENT_ID,请键入:
DEFINE DEPARTMENT_ID = 20即使输入数字 20,SQL*Plus 仍将由 2 和 0 这两个字符所组成的 CHAR 值赋给 DEPARTMENT_ID。
要列出 DEPARTMENT_ID 的定义,请输入
DEFINE DEPARTMENT_IDDEFINE DEPARTMENT_ID = "20" (CHAR)&
此结果显示 DEPARTMENT_ID 的值为 20。
--------------------------------------------------------------------------------
DESCRIBE 语法
DESC[RIBE] {[schema.]object[@connect_identifier]}
列出指定表、视图或同义词的列定义或者指定函数或过程的说明。
要描述视图 EMP_DETAILS_VIEW,请输入
DESCRIBE EMP_DETAILS_VIEW&Name&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Null?&&& Type&----------------------------------------- -------- ----------------&EMPLOYEE_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL NUMBER(6)&JOB_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL VARCHAR2(10)&MANAGER_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(6)&DEPARTMENT_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(4)&LOCATION_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(4)&COUNTRY_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& CHAR(2)&FIRST_NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(20)&LAST_NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL VARCHAR2(25)&SALARY&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(8,2)&COMMISSION_PCT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(2,2)&DEPARTMENT_NAME&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL VARCHAR2(30)&JOB_TITLE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL VARCHAR2(35)&CITY&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NOT NULL VARCHAR2(30)&STATE_PROVINCE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(25)&COUNTRY_NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(40)&REGION_NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(25)&
要描述名为 CUSTOMER_LOOKUP 的过程,请输入
DESCRIBE customer_lookupPROCEDURE customer_lookupArgument Name&&&&&&&&&& Type&&&& In/Out&& Default?----------------------& -------- -------- ---------CUST_ID&&&&&&&&&&&&&&&& NUMBER&& INCUST_NAME&&&&&&&&&&&&&& VARCHAR2 OUT&
要创建和描述包含过程 aproc 和 bproc 的程序包 APACK,请输入
CREATE PACKAGE apack ASPROCEDURE aproc(P1 CHAR, P2 NUMBER);PROCEDURE bproc(P1 CHAR, P2 NUMBER);END/Package created.&
DESCRIBE apackPROCEDURE APROC&Argument Name&&&&&&&&&&&&&&&&& Type&&&&&&&&&&&&&&&&&&& In/Out Default?&------------------------------ ----------------------- ------ --------&P1&&&&&&&&&&&&&&&&&&&&&&&&&&&& CHAR&&&&&&&&&&&&&&&&&&& IN&P2&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER&&&&&&&&&&&&&&&&& INPROCEDURE BPROC&Argument Name&&&&&&&&&&&&&&&&& Type&&&&&&&&&&&&&&&&&&& In/Out Default?&------------------------------ ----------------------- ------ --------&P1&&&&&&&&&&&&&&&&&&&&&&&&&&&& CHAR&&&&&&&&&&&&&&&&&&& IN&P2&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER&&&&&&&&&&&&&&&&& IN&
有关使用 SET DESCRIBE 和 SHOW DESCRIBE 命令的信息,请参阅 SET 和 SHOW 命令。
--------------------------------------------------------------------------------
DISCONNECT 语法
DISC[ONNECT]
提交对数据库的暂挂更改,并从 Oracle 数据库中注销当前用户名,但不退出 iSQL*Plus。
脚本可能以 CONNECT 命令开头并以 DISCONNECT 结束,如下所示。
CONNECT HRSELECT LAST_NAME, DEPARTMENT_NAME FROM EMP_DETAILS_VIEW;DISCONNECTSET INSTANCE FIN2CONNECT HR2
--------------------------------------------------------------------------------
EXECUTE 语法
EXEC[UTE] statement
其中 statement 代表 PL/SQL 语句。
执行单个 PL/SQL 语句。如果要执行引用存储过程的 PL/SQL 语句,通常会用到 EXECUTE 命令。有关 PL/SQL 的详细信息,请参阅 PL/SQL User's Guide and Reference。
如果已用以下语句定义了变量 :n:
VARIABLE n NUMBER
以下 EXECUTE 命令为绑定变量 n 赋值:
EXECUTE :n := 1PL/SQL procedure successfully completed.&
有关如何创建绑定变量的信息,请参阅 VARIABLE 命令。
--------------------------------------------------------------------------------
{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK]
提交或回退所有暂挂更改,停止处理当前的 iSQL*Plus 脚本并将焦点返回输入区域。没有方法可以访问 iSQL*Plus 中的返回代码。在 iSQL*Plus 中单击&注销&按钮可从 Oracle 数据库中退出。
退出时提交,或 iSQL*Plus 中的处理终止时提交,执行提交时不考虑 SET AUTOCOMMIT 的状态。
以下示例提交所有未提交的事务,并返回上次执行的 SQL 命令或 PL/SQL 块的错误代码:
EXIT SQL.SQLCODE
--------------------------------------------------------------------------------
HELP | ? [topic]
其中 topic 代表 SQL*Plus 帮助主题,例如 COLUMN。
访问 SQL*Plus 命令行帮助系统。输入 HELP INDEX 或 ? INDEX 可获得主题列表。可以在
上查看 SQL*Plus 资源,还可以在
上查看 Oracle 数据库文档库。
单击 iSQL*Plus 中的&帮助&图标可以访问 iSQL*Plus 联机帮助。
要查看具有帮助的 SQL*Plus 命令的列表,请输入
HELP INDEX或? INDEX
要查看具有帮助的 SQL*Plus 命令的单个列列表,请输入
HELP TOPICS
--------------------------------------------------------------------------------
L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
列出 SQL 缓冲区的一行或多行。
要列出缓冲区的内容,请输入
LIST或者输入
;1 SELECT LAST_NAME, DEPARTMENT_ID, JOB_ID2 FROM EMP_DETAILS_VIEW3 WHERE JOB_ID = 'SH_CLERK'4* ORDER BY DEPARTMENT_ID&
星号指示第 4 行是当前行。
要只列出第 2 行,请输入
LIST 2此时,将显示第 2 行:
2* FROM EMP_DETAILS_VIEW&
--------------------------------------------------------------------------------
PAUSE 语法
PAU[SE] [text]
其中 text 代表要显示的文本。
显示&下一页&按钮,用户必须单击此按钮才能继续操作。
--------------------------------------------------------------------------------
PRINT 语法
PRI[NT] [variable ...]
其中 variable ... 代表想要显示其值的绑定变量的名称。
显示绑定变量的当前值。有关绑定变量的详细信息,请参阅 PL/SQL User's Guide and Reference。
以下示例说明了 PRINT 命令的用法:
VARIABLE n NUMBERBEGIN:n := 1;END;/PL/SQL procedure successfully completed.&
PRINT nN----------1&
--------------------------------------------------------------------------------
PROMPT 语法
PRO[MPT] [text]
其中 text 代表要显示的消息文本。
向用户屏幕发送指定的消息或空行。如果省略 text,PROMPT 会在用户屏幕上显示空行。
以下示例显示在脚本 ASKFORDEPT.SQL 中将 PROMPT 与 ACCEPT 结合使用。ASKFORDEPT.SQL 包含以下 SQL*Plus 和 SQL 命令:
PROMPTPROMPT Please enter a valid departmentPROMPT For example:& 10SELECT DEPARTMENT_NAME FROM EMP_DETAILS_VIEWWHERE DEPARTMENT_ID = &NEWDEPT假定您使用 START 或 @ 运行该文件:
@ASKFORDEPT.SQL VAL1@HTTP://machine_name.domain:port/ASKFORDEPT.SQL VAL1Please enter a valid departmentFor example: 10Department ID?&&
可以在 Department ID?& 提示符下输入部门号码。默认情况下,SQL*Plus 会在替换前后列出包含 &NEWDEPT 的行,然后显示与 Department ID?& 提示符下输入的号码对应的部门名称。可以使用 SET VERIFY OFF 禁止该行为。
--------------------------------------------------------------------------------
RECOVER 语法
RECOVER {general | managed | BEGIN BACKUP | END BACKUP}
其中 general 子句使用以下语法:
[AUTOMATIC] [FROM location]
{ {full_database_recovery | partial_database_recovery | LOGFILE filename}
[ {TEST | ALLOW integer CORRUPTION | parallel_clause } [TEST | ALLOW integer CORRUPTION | parallel_clause ]...]
| CONTINUE [DEFAULT] | CANCEL}
其中 full_database_recovery 子句使用以下语法:
[STANDBY] DATABASE
[ {UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE}
[UNTIL {CANCEL | TIME date | CHANGE integer} | USING BACKUP CONTROLFILE]...]
其中 partial_database_recovery 子句使用以下语法:
{TABLESPACE tablespace [, tablespace]...
| DATAFILE {filename | filenumber} [, filename | filenumber]...
| STANDBY {TABLESPACE tablespace [, tablespace]...
| DATAFILE {filename | filenumber} [, filename | filenumber]...}
UNTIL [CONSISTENT WITH] CONTROLFILE}
其中 parallel 子句使用以下语法:
{ NOPARALLEL | PARALLEL [ integer] }
其中 managed 子句使用以下语法:
MANAGED STANDBY DATABASE recover_clause | cancel_clause | finish_clause
其中 recover_clause 使用以下语法:
{ { DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT} }
| { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer
| { EXPIRE integer | NO EXPIRE } | parallel_clause
| USING CURRENT LOGFILE | UNTIL CHANGE integer
| THROUGH { [ THREAD integer ] SEQUENCE integer
| ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} }
[ DISCONNECT [ FROM SESSION ] | { TIMEOUT integer | NOTIMEOUT}
| { NODELAY | DEFAULT DELAY | DELAY integer } | NEXT integer
| { EXPIRE integer | NO EXPIRE } | parallel_clause
| USING CURRENT LOGFILE | UNTIL CHANGE integer
| THROUGH { [ THREAD integer ] SEQUENCE integer
| ALL ARCHIVELOG | { ALL | LAST | NEXT } SWITCHOVER} ] ...
其中 cancel_clause 使用以下语法:
CANCEL [IMMEDIATE] [WAIT | NOWAIT]
其中 finish_clause 使用以下语法:
[ DISCONNECT [ FROM SESSION ] ] [ parallel_clause]
FINISH [ SKIP [ STANDBY LOGFILE ] ] [ WAIT | NOWAIT]
其中 parallel_clause 使用以下语法:
{ NOPARALLEL | PARALLEL [ integer] }
对一个或多个表空间、一个或多个数据文件或整个数据库执行介质恢复。有关 RECOVER 命令的详细信息,请参阅 Oracle Database Administrator's Guide、Oracle Database SQL Reference 中的 ALTER DATABASE RECOVER 命令以及 Oracle Database Backup and Recovery Basics 指南。
必须将 AUTORECOVERY 设置为 ON 才能在 iSQL*Plus 中使用 RECOVER 命令。
由于可能会出现网络超时,因此建议您对于长时间运行的 DBA 操作 (例如 RECOVER) 使用 SQL*Plus 命令行,而不要使用 iSQL*Plus。
要恢复整个数据库,请输入
RECOVER DATABASE
要将数据库恢复到指定时间之前的状态,请输入
RECOVER DATABASE UNTIL TIME 01-JAN-:00
要恢复数据库中的两个表空间 ts_one 和 ts_two,请输入
RECOVER TABLESPACE ts_one, ts_two
要恢复数据库中的数据文件 data1.db,请输入
RECOVER DATAFILE 'data1.db'
--------------------------------------------------------------------------------
REMARK 语法
在脚本中开始输入注释。 iSQL*Plus 不会将注释解释为命令。
以下脚本包含一些典型的注释:
REM COMPUTE uses BREAK ON REPORT to break on end of tableBREAK ON REPORTCOMPUTE SUM OF "DEPARTMENT 10" "DEPARTMENT 20" -"DEPARTMENT 30" "TOTAL BY JOB_ID" ON REPORTREM Each column displays the sums of salaries by job forREM one of the departments 10, 20, 30.SELECT JOB_ID,SUM(DECODE( DEPARTMENT_ID, 10, SALARY, 0)) "DEPARTMENT 10",SUM(DECODE( DEPARTMENT_ID, 20, SALARY, 0)) "DEPARTMENT 20",SUM(DECODE( DEPARTMENT_ID, 30, SALARY, 0)) "DEPARTMENT 30",SUM(SALARY) "TOTAL BY JOB_ID"FROM EMP_DETAILS_VIEWGROUP BY JOB_ID;
--------------------------------------------------------------------------------
REPFOOTER 语法
REPF[OOTER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]
其中,printspec 代表以下一个或多个用于放置文本并设置格式的子句:
S[KIP] [n]
FORMAT text
在每个报告的底部放置指定的报告页脚并设置其格式,也可以列出当前的 REPFOOTER 定义。
要在单独一页上将&END EMPLOYEE LISTING REPORT&定义为报告页脚并使其居中,请输入:
REPFOOTER PAGE CENTER 'END EMPLOYEE LISTING REPORT'TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNOSELECT LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE SALARY & 12000;LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------------------- ----------King&&&&&&&&&&&&&&&&&&&&&&&&&& 24000Kochhar&&&&&&&&&&&&&&&&&&&&&&& 17000De Haan&&&&&&&&&&&&&&&&&&&&&&& 17000Russell&&&&&&&&&&&&&&&&&&&&&&& 14000Partners&&&&&&&&&&&&&&&&&&&&&& 13500Hartstein&&&&&&&&&&&&&&&&&&&&& 13000&&&&&&&&&&&&&&&&&&&&&&&&& ----------sum&&&&&&&&&&&&&&&&&&&&&&&&&&& 98500
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Page:& 2&&&&&&&&&&&&&&&&&&&&&&&&&& END EMPLOYEE LISTING REPORT
6 rows selected.&
要禁止显示报告页脚而不更改其定义,请输入
REPFOOTER OFF
--------------------------------------------------------------------------------
REPHEADER 语法
REPH[EADER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]
其中,printspec 代表以下一个或多个用于放置文本并设置格式的子句:
S[KIP] [n]
FORMAT text
在每个报告的顶部放置指定的报告页眉并设置其格式,也可以列出当前的 REPHEADER 定义。
要在单独一页上将&EMPLOYEE LISTING REPORT&定义为报告页眉并使其居中,请输入:
REPHEADER PAGE CENTER 'EMPLOYEE LISTING REPORT'TTITLE RIGHT 'Page: ' FORMAT 999 SQL.PNOSELECT LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE SALARY & 12000;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Page:&& 1&&&&&&&&&&&&&&&&&&&&&&&&&&&& EMPLOYEE LISTING REPORT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Page:&& 2LAST_NAME&&&&&&&&&&&&&&&&&&&& SALARY------------------------- ----------King&&&&&&&&&&&&&&&&&&&&&&&&&& 24000Kochhar&&&&&&&&&&&&&&&&&&&&&&& 17000De Haan&&&&&&&&&&&&&&&&&&&&&&& 17000Russell&&&&&&&&&&&&&&&&&&&&&&& 14000Partners&&&&&&&&&&&&&&&&&&&&&& 13500Hartstein&&&&&&&&&&&&&&&&&&&&& 13000&&&&&&&&&&&&&&&&&&&&&&&&& ----------sum&&&&&&&&&&&&&&&&&&&&&&&&&&& 98500
6 rows selected.&
要禁止显示报告页眉而不更改其定义,请输入
REPHEADER OFF
--------------------------------------------------------------------------------
列出并执行当前存储在 SQL 缓冲区中的 SQL 命令或 PL/SQL 块。
假定 SQL 缓冲区包含以下脚本:
SELECT DEPARTMENT_IDFROM EMP_DETAILS_VIEWWHERE SALARY&12000
要运行 (RUN) 该脚本,请输入
RUN& 1& SELECT DEPARTMENT_ID& 2& FROM EMP_DETAILS_VIEW& 3 WHERE SALARY&12000
DEPARTMENT_ID-------------&&&&&&&&&& 90&&&&&&&&&& 90&&&&&&&&&& 90&&&&&&&&&& 80&&&&&&&&&& 80&&&&&&&&&& 20
6 rows selected.&
--------------------------------------------------------------------------------
SET 设置一个系统变量以更改当前会话的 SQL*Plus 环境设置,例如,可以:
自定义 HTML 格式
启用或禁用列标题的打印
设置每页的行数
设置数据的显示宽度
还可以使用 iSQL*Plus 中的&首选项&屏幕来设置系统变量。
SET system_variable value
其中 system_variable 和 value 代表下面的&SET 命令语法&表中显示的一个子句。
--------------------------------------------------------------------------------
SET 命令语法
--------------------------------------------------------------------------------
SET APPI[NFO]{ON | OFF | text} 设置通过 DBMS_APPLICATION_INFO 程序包自动注册脚本。
要显示 APPINFO 的值 (默认情况下为 SET OFF),请输入
SET APPINFO ONSHOW APPINFOAPPINFO is ON and set to "SQL*Plus"&
要更改默认文本,请输入
SET APPINFO 'This is SQL*Plus'要确保已进行了注册,请输入
VARIABLE MOD VARCHAR2(50)VARIABLE ACT VARCHAR2(40)EXECUTE DBMS_APPLICATION_INFO.READ_MODULE(:MOD, :ACT);PL/SQL procedure successfully completed.&
PRINT MODMOD---------------------------------------------------This is SQL*Plus&
要将 APPINFO 更改回默认值,请输入
SET APPINFO OFF
--------------------------------------------------------------------------------
SET ARRAY[SIZE] {15 | n} 设置 SQL*Plus 一次可以从数据库中提取的行数。
--------------------------------------------------------------------------------
SET AUTO[COMMIT]{ON | OFF | IMM[EDIATE] | n} 控制在执行 SQL 或 PL/SQL 命令之后,Oracle 数据库何时将暂挂更改提交到数据库。
当 SQL*Plus 退出时,SET AUTOCOMMIT 不会改变提交行为。默认情况下会提交任何未提交的数据。
--------------------------------------------------------------------------------
SET AUTOP[RINT] {ON | OFF} 设置自动打印绑定变量。
--------------------------------------------------------------------------------
SET AUTORECOVERY [ON | OFF] 设置为 ON 时,RECOVER 命令在恢复期间将自动应用所需的归档重做日志文件的默认文件名。
必须将 AUTORECOVERY 设置为 ON 才能在 iSQL*Plus 中使用 RECOVER 命令。
要将恢复模式设置为 AUTOMATIC,请输入
SET AUTORECOVERY ONRECOVER DATABASE
--------------------------------------------------------------------------------
SET AUTOT[RACE] {ON | OFF | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] 在成功执行 SQL DML 语句 (SELECT、INSERT、UPDATE 或 DELETE) 后显示一个报告。
--------------------------------------------------------------------------------
SET BLO[CKTERMINATOR] {. | c | ON | OFF} 将用来终止 PL/SQL 块的字符设置为 c。
--------------------------------------------------------------------------------
SET CMDS[EP] {; | c | ON | OFF} 将用来分隔一行中输入的多个 SQL*Plus 命令的非字母数字字符设置为 c。
要在同一行使用 TTITLE 指定标题并使用 COLUMN 设置列的格式,请输入
SET CMDSEP +TTITLE LEFT 'SALARIES' + COLUMN SALARY FORMAT $99,999SELECT LAST_NAME, SALARY FROM EMP_DETAILS_VIEWWHERE JOB_ID = 'SH_CLERK';SALARIESLAST_NAME&&&&&&&&&&&&&&&&&& SALARY------------------------- --------Taylor&&&&&&&&&&&&&&&&&&&&& $3,200Fleaur&&&&&&&&&&&&&&&&&&&&& $3,100Sullivan&&&&&&&&&&&&&&&&&&& $2,500Geoni&&&&&&&&&&&&&&&&&&&&&& $2,800Sarchand&&&&&&&&&&&&&&&&&&& $4,200Bull&&&&&&&&&&&&&&&&&&&&&&& $4,100Dellinger&&&&&&&&&&&&&&&&&& $3,400Cabrio&&&&&&&&&&&&&&&&&&&&& $3,000Chung&&&&&&&&&&&&&&&&&&&&&& $3,800Dilly&&&&&&&&&&&&&&&&&&&&&& $3,600Gates&&&&&&&&&&&&&&&&&&&&&& $2,900Perkins&&&&&&&&&&&&&&&&&&&& $2,500Bell&&&&&&&&&&&&&&&&&&&&&&& $4,000Everett&&&&&&&&&&&&&&&&&&&& $3,900McCain&&&&&&&&&&&&&&&&&&&&& $3,200Jones&&&&&&&&&&&&&&&&&&&&&& $2,800
SALARIESLAST_NAME&&&&&&&&&&&&&&&&&& SALARY------------------------- --------Walsh&&&&&&&&&&&&&&&&&&&&&& $3,100Feeney&&&&&&&&&&&&&&&&&&&&& $3,000OConnell&&&&&&&&&&&&&&&&&&& $2,600Grant&&&&&&&&&&&&&&&&&&&&&& $2,600
20 rows selected.&
--------------------------------------------------------------------------------
SET COLSEP { | text} 设置打印在输出中的 各列之间的列分隔字符。
只有当&预设格式的输出&为&启用&(SET MARKUP HTML PREFORMAT) 时,才会在 iSQL*Plus 中使用列分隔符 (SET COLSEP)。
要将列分隔符设置为&|&,请输入
SET MARKUP HTML PREFORMAT ONSET COLSEP '|'SELECT LAST_NAME, JOB_ID, DEPARTMENT_IDFROM EMP_DETAILS_VIEWWHERE DEPARTMENT_ID = 20;LAST_NAME&&&&&&&&&&&&&&& |JOB_ID&&& |DEPARTMENT_ID-------------------------|----------|-------------Hartstein&&&&&&&&&&&&&&& |MK_MAN&&& |&&&&&&&&&& 20Fay&&&&&&&&&&&&&&&&&&&&& |MK_REP&&& |&&&&&&&&&& 20&
--------------------------------------------------------------------------------
SET CON[CAT] {. | c | ON | OFF} 设置用来终止替代变量引用的字符,SQL*Plus 不会将该字符后的那个字符解释为变量名的一部分。
--------------------------------------------------------------------------------
SET COPYC[OMMIT] {0 | n} 控制 COPY 命令提交对数据库的更改之前的行数。
--------------------------------------------------------------------------------
SET COPYTYPECHECK {ON | OFF} 设置在使用 COPY 命令插入或附加到表时,禁止比较数据类型。
--------------------------------------------------------------------------------
SET DEF[INE] {& | c | ON | OFF} 将用来作为替代变量前缀的字符设置为 c。
--------------------------------------------------------------------------------
SET DESCRIBE [DEPTH {1 | n | ALL}] [LINENUM {ON | OFF}] [INDENT {ON | OFF}] 设置可以递归地描述某个对象的层次深度。
要创建对象类型 ADDRESS,请输入
CREATE TYPE ADDRESS AS OBJECT& ( STREET& VARCHAR2(20),&&& CITY&&& VARCHAR2(20)& );/Type created&
要创建包含 ADDRESS 类型的嵌套对象 (EMPADDR) 的表 EMPLOYEE,请输入
CREATE TABLE EMPLOYEE& (LAST_NAME VARCHAR2(30),&& EMPADDR ADDRESS,&& JOB_ID VARCHAR2(20),&& SALARY NUMBER(7,2)& );/Table created&
要以两层深度描述表 EMPLOYEE、缩进输出并显示行号,请输入:
SET DESCRIBE DEPTH 2 LINENUM ON INDENT ONDESCRIBE employee&&&&&& Name&&&&&&&&&&&&&&&&&&&&&&&&&&& Null?&&& Type&&&&&& ------------------------------- -------- --------------------------1&&&&& LAST_NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(30)2&&&&& EMPADDR&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ADDRESS3&&& 2&& STREET&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(20)4&&& 2&& CITY&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(20)5&&&&& JOB_ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(20)6&&&&& SALARY&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(7,2)&
--------------------------------------------------------------------------------
SET ECHO {ON | OFF} 控制是否回显脚本中使用 @、@@ 或 START 执行的命令。值为 ON 时屏幕上将显示命令。值为 OFF 禁止显示。ECHO 命令并不影响您交互输入的命令的显示,也不会从操作系统重定向到 iSQL*Plus。
--------------------------------------------------------------------------------
SET EMB[EDDED] {ON | OFF} 控制页面上每个报告开始的位置。
--------------------------------------------------------------------------------
SET ESC[APE] {/ | c | ON | OFF} 定义用作转义符的字符。
如果将转义符定义为感叹号 (!),则输入
SET ESCAPE !ACCEPT v1 PROMPT 'Enter !&1:'显示以下提示:
Enter &1:&
要将转义符重置为默认值 / (反斜杠),请输入
SET ESCAPE ON
--------------------------------------------------------------------------------
SET FEED[BACK] {6 | n | ON | OFF} 显示当脚本选择了至少 n 个记录时,脚本所返回的记录数。
--------------------------------------------------------------------------------
SET FLAGGER {OFF | ENTRY | INTERMED[IATE] | FULL} 检查以确保 SQL 语句遵循 ANSI/ISO SQL92 标准。
--------------------------------------------------------------------------------
SET HEA[DING] {ON | OFF} 控制报告中列标题的打印。
要禁止显示报告中的列标题,请输入
SET HEADING OFF如果随后运行 SQL SELECT 命令
SELECT LAST_NAME, SALARYFROM EMP_DETAILS_VIEWWHERE JOB_ID = 'AC_MGR';则输出以下结果:
Higgins 12000&
要重新启用列标题的显示,请输入
SET HEADING ON
--------------------------------------------------------------------------------
SET HEADS[EP] { | | c | ON | OFF} 定义在列标题中用作换行符的字符。
只有当&预设格式的输出&首选项设置为&启用&(SET MARKUP HTML PREFORMAT) 时,iSQL*Plus 中才支持标题分隔符字符 (SET HEADSEP)。
--------------------------------------------------------------------------------
SET INSTANCE [instance_path | LOCAL] 将会话的默认实例更改为指定的实例路径。
要将默认例程设置为&PROD1&,请输入
DISCONNECTSET INSTANCE PROD1
要将此例程重置为默认值 local,请输入
SET INSTANCE local
要更改此例程,必须断开与任何已连接例程的连接。
--------------------------------------------------------------------------------
SET LIN[ESIZE] {150 | n} 设置在开始一个新行之前,iSQL*Plus 在一行上显示的字符总数。
--------------------------------------------------------------------------------
SET LOBOF[FSET] {1 | n} 设置检索和显示 CLOB 和 NCLOB 数据的开始位置。
要将检索 CLOB 列数据的开始位置设置为第 22 个字符位置,请输入
SET LOBOFFSET 22
CLOB 数据将在屏幕上换行;SQL*Plus 直到第 23 个字符时才截断数据。
--------------------------------------------------------------------------------
SET LOGSOURCE [pathname] 指定恢复过程中检索归档日志的位置。
要将日志文件的默认恢复位置设置为目录&/usr/oracle10/dbs/arch&,请输入
SET LOGSOURCE "/usr/oracle10/dbs/arch"RECOVER DATABASE
--------------------------------------------------------------------------------
SET LONG {80 | n} 设置用于显示 CLOB、LONG、NCLOB 和 XMLType 值的最大宽度 (字节),以及用于复制 LONG 值的最大宽度 (字节)。
要将显示和复制 LONG 值时提取的最大字节数设置为 500,请输入
SET LONG 500LONG 数据将在屏幕上换行;SQL*Plus 直到第 501 个字节时才截断数据。LONG 的默认长度为 80 个字节。
--------------------------------------------------------------------------------
SET LONGC[HUNKSIZE] {80 | n} 设置 SQL*Plus 用于检索 CLOB、LONG、NCLOB 或 XMLType 值的增量大小 (字节)。
要将 SQL*Plus 检索 LONG 值的增量大小设置为 100 个字节,请输入
SET LONGCHUNKSIZE 100此时,将以 100 个字节为增量来检索 LONG 数据,直到检索到整个值,或者执行到 SET LONG (取其中较小的值)。
--------------------------------------------------------------------------------
SET MARK[UP] HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON | OFF}] [SPOOL {ON | OFF}] [PRE[FORMAT] {ON | OFF}] 输出带有 HTML 标记的文本,这是 iSQL*Plus 使用的输出。
--------------------------------------------------------------------------------
SET NULL text设置每当 SQL SELECT 命令的结果中出现空值时显示的文本。
--------------------------------------------------------------------------------
SET NUMF[ORMAT] format设置用于显示数字的默认格式。format 是您输入的数字格式。有关格式语法的详细信息,请参阅 COLUMN 命令中的数字格式。请输入
SET NUMFORMAT ""使用默认的字段宽度和由 SET NUMWIDTH 指定的格式化模块。
--------------------------------------------------------------------------------
SET NUM[WIDTH] {10 | n} 设置用于显示数字的默认宽度。有关格式语法的详细信息,请参阅 COLUMN 命令中的数字格式。
COLUMN FORMAT 设置优先于 SET NUMFORMAT 设置,后者则优先于 SET NUMWIDTH 设置。
--------------------------------------------------------------------------------
SET PAGES[IZE] {14 | n} 设置每一页上显示的行数。错误消息和信息性消息不计入页大小,因此页不会始终是完全同样的长度。iSQL*Plus 的默认页大小为 24。
--------------------------------------------------------------------------------
SET PAU[SE] {ON | OFF | text} SET PAUSE ON 将显示文本的值,然后暂停输出,并在报告输出的 PAGESIZE 行数后面显示&下一页&按钮。单击&下一页&按钮可以查看更多的报告输出。输出的最后一页没有&下一页&按钮。
--------------------------------------------------------------------------------
SET RECSEP {WR[APPED] | EA[CH] | OFF} SQL*Plus 通过 RECSEP 来了解对记录进行分隔的位置。
只有当&预设格式的输出&设置为&启用&(SET MARKUP HTML PREFORMAT) 时,iSQL*Plus 中才支持显示记录分隔符字符 (SET RECSEP)。
--------------------------------------------------------------------------------
SET RECSEPCHAR { | c} 定义显示或打印时用于分隔记录的字符。
--------------------------------------------------------------------------------
SET SERVEROUT[PUT] {ON | OFF} [SIZE {n | UNL[IMITED]}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}] 控制是否显示 SQL*Plus 中的存储过程或 PL/SQL 块的输出 (即 DBMS_OUTPUT.PUT_LINE)。
要在 PL/SQL 块中使用 DBMS_OUTPUT.PUT_LINE 启用文本显示,请输入
SET SERVEROUTPUT ON以下示例显示在使用 SET SERVEROUTPUT ON 执行匿名过程时发生的情况:
BEGIN& DBMS_OUTPUT.PUT_LINE('Task is complete');END;/Task is complete.PL/SQL procedure successfully completed.&
--------------------------------------------------------------------------------
SET SQLC[ASE] {MIX[ED] | LO[WER] | UP[PER]} 在即将执行之前转换 SQL 命令和 PL/SQL 块的大小写。
--------------------------------------------------------------------------------
SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]} 将行为设置为 x.y[.z] 所指定的发行版或版本的行为。
SQL*Plus 兼容性表 SQL*Plus 兼容性表将受到每个 SQL*Plus 兼容性设置影响的行为列成表格。可以用三种方式来设置 SQL*Plus 兼容模式:
可以在站点或用户概要文件中包含 SET SQLPLUSCOMPATIBILITY 命令。安装时,glogin.sql 中没有 SET SQLPLUSCOMPATIBILITY 设置。因此,默认的兼容性为 10.2。
在启动时,可以使用 SQLPLUS -C[OMPATIBILITY] {x.y[.z]} 命令参数来设置该会话的兼容模式。
在会话期间可以使用 SET SQLPLUSCOMPATIBILITY {x.y[.z]} 命令来设置该会话所需的 SQL*Plus 行为。
下表显示引入了行为更改的 SQL*Plus 发行版本,因此它是获得该行为的最低 SQLPLUSCOMPATIBILITY 值。例如,要获得 VARIABLE 命令的早期行为,必须使用早于 9.0.1 的 SQL*Plus 版本,或者必须使用小于 9.0.1 的 SQLPLUSCOMPATIBILITY 值。可以设置的最低 SQLPLUSCOMPATIBILITY 值是 7.3.4。
值& 结果& 适用条件& &=10.1& SHOW ERRORS 使用只在 Oracle 数据库 10g 中可用的新列对 PL/SQL 错误消息进行排序。& 10.1& &=10.1& 添加了 SPOOL 选项 CREATE、REPLACE、SAVE,这可能影响在某些平台上的文件名语法解析。& 10.1& &=10.1& SET SQLPROMPT& 10.1& &=10.1& 包含在引号中的 Windows 文件名允许使用空格字符。目前 Windows 不允许使用某些其它特殊标点符号字符。& 10.1& &=10.1& 每次重新连接将调用 Glogin/login 文件。& 10.1& & &10.1& 回显 /* 注释时使用已弃用的 DOC& 提示符。& 10.1& &= 9.2& 定义了 FOLD_AFTE 的宽列可能显示在新行的开头。否则,它将以比期望宽度窄一些的宽度错误地放在上一行的末尾。& 9.2.& &= 9.0& 忽略 SQL 语句中斜杠 (&/&) 前面的空格,而且采用斜杠表示执行该语句。否则将斜杠视为语句的组成部分 (例如作为分隔符)。& 9.0.1.4.& &= 9.0& 为 NCHAR 和 NVARCHAR2 类型指定的长度为字符数。否则,长度可能表示字节数或字符数 (取决于字符集)。& 9.0.1&
--------------------------------------------------------------------------------
SET SQLT[ERMINATOR] {; | c | ON | OFF} 设置用于结束 PL/SQL 块或 SQL 语句的脚本或数据条目,执行脚本,或将脚本载入缓冲区的字符。
--------------------------------------------------------------------------------
SET TIMI[NG] {ON | OFF} 控制计时统计信息的显示。
--------------------------------------------------------------------------------
SET UND[ERLINE] {- | c | ON | OFF} 设置在报告中为列标题加下划线的字符。下划线字符不能为字母数字字符或空格。ON 或 OFF 选项分别启用或禁用加下划线功能。ON 选项会将 c 的值改回默认值&-&。
只有在设置 SET MARKUP HTML PREFORMAT ON 之后,iSQL*Plus 中才支持 SET UNDERLINE。
--------------------------------------------------------------------------------
SET VER[IFY] {ON | OFF} 控制在使用值来取代替代变量的前后,是否列出 SQL 语句或 PL/SQL 命令的文本。ON 将列出文本;OFF 则不列出文本。
--------------------------------------------------------------------------------
SET WRA[P] {ON | OFF} 控制当所选行超出当前行宽度时,是否截断所选行的显示。OFF 将截断所选行;ON 则允许所选行换行显示。
使用 COLUMN 命令的 WRAPPED 和 TRUNCATED 子句可以覆盖特定列的 WRAP 设置。
只有当&预设格式的输出&设置为&启用&(SET MARKUP HTML PREFORMAT) 时,iSQL*Plus 才支持&换行&首选项 (SET WRAP)。
--------------------------------------------------------------------------------
SET XQUERY BASEURI {text} 指定在函数中解析相对 URI 的基础 URI。它启用要更改的 XQuery 所访问的文件的前缀。
请小心输入有效的值,因为不会对 XQUERY BASEURI 值执行系统验证。
SET XQUERY BASEURI '/public/scott'xquery for $i in doc("foo.xml") return $i/它被解析为:
select column_Value from xmltable('declare base-uri "/public/scott"; for $i in doc("foo.xml") return $i ') ;
--------------------------------------------------------------------------------
SET XQUERY ORDERING {UNORDERED | ORDERED | DEFAULT} 设置 XQuery 的输出的排序方式。有三个值:
UNORDERED 指定将结果按从数据库检索它们时的顺序进行排序。
ORDERED 指定按 XQuery 的定义对结果进行排序。
DEFAULT 指定使用数据库默认值 UNORDERED。
SET XQUERY ORDERING ORDEREDxquery for $i in doc("foo.xml") return $i/它被解析为:
select column_value from xmltable('decl for $i in doc("foo.xml") return $i ');
--------------------------------------------------------------------------------
SET XQUERY NODE {BYVALUE | BYREFERENCE | DEFAULT} 设置节点标识保留模式。保留模式应用于创建新节点 (例如,元素构造器) 或者返回一个包含节点的项或序列 (例如,路径表达式) 的所有表达式。有三个值:
BYVALUE 指定不需要保留节点标识。这意味着任何节点操作 (例如,创建操作或作为表达式的结果返回的操作) 都将被深层复制,并丢失它在其所在原始树中的上下文。因此,对该节点的后续操作 (测试节点标识、父兄关系或排序方式) 都将是未定义的。
BYREFERENCE 指定保留节点标识,因此对该节点的后续操作将保留节点的上下文和定义。
DEFAULT 指定数据库使用默认值 BYVALUE。
SET XQUERY NODE BYREFERENCExquery for $i in doc("foo.xml") return $i/它被解析为:
select column_value from xmltable('decl for $i in doc("foo.xml") return $i ');
--------------------------------------------------------------------------------
SET XQUERY CONTEXT {text} 指定 XQuery 上下文项表达式。上下文项表达式代表上下文项,它可能是节点 (比如在以下表达式中:fn:doc("bib.xml")//book[fn:count(./author)&1]) 或原子值 (比如在以下表达式中:(1 到 100)[. mod 5 eq 0])。
请小心输入有效的值,因为不会对 XQUERY CONTEXT 值执行系统验证。
SET XQUERY CONTEXT 'doc("foo.xml")'xquery for $i in /a return $i/它被解析为:
select column_value from xmltable('for $i in /a return $i' passing XMLQuery("doc('foo.xml')"));
--------------------------------------------------------------------------------
SHO[W] option
其中 option 代表以下项或子句之一:
system_variableALL
ERR[ORS] [ { FUNCTION | PROCEDURE | PACKAGE | PACKAGE BODY | TRIGGER | VIEW | TYPE | TYPE BODY | DIMENSION | JAVA CLASS } [schema.]name]
PARAMETERS [parameter_name]
RECYC[LEBIN] [original_name]
REPF[OOTER]
REPH[EADER]
显示 SQL*Plus 系统变量的值或当前的 SQL*Plus 环境。SHOW SGA 要求以具有 DBA 权限的身份登录。
要显示有关 SGA 的信息,请输入
SHOW SGATotal System Global Area&&&&&&&&&&&&&&&&&&&&&&&&&&& 7629732 bytesFixed Size&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 60324 bytesVariable Size&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 6627328 bytesDatabase Buffers&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 409600 bytesRedo Buffers&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 532480 bytes&
以下示例说明如何创建存储过程并随后显示其编译错误:
CONNECT SYSTEM/MANAGERCREATE PROCEDURE HR.PROC1 ASBEGIN:P1 := 1;END;/Warning: Procedure created with compilation errors.&
SHOW ERRORS PROCEDURE PROC1NO ERRORS.&
SHOW ERRORS PROCEDURE HR.PROC1Errors for PROCEDURE HR PROC1:LINE/COL ERROR--------------------------------------------------------3/3&&&&& PLS-00049: bad bind variable 'P1'&
要显示可以用 FLASHBACK 命令还原的对象 (其中 CJ1 和 ABC 是已删除的对象),请输入:
SHOW RECYCLEBINORIGINAL NAME&&&& RECYCLEBIN NAME&&&&&& OBJECT TYPE&&&& DROP TIME--------------&&& ------------------&&& ------------&&& --------------------CJ1&&&&&&&&&&&&&& RB$$29458$TABLE$0&&&& TABLE&&&&&&&&&& :14:54:07ABC&&&&&&&&&&&&&& RB$$29453$TABLE$0&&&& TABLE&&&&&&&&&& :18:50:29&
要还原 CJ1,请输入
FLASHBACK TABLE CJ1 TO BEFORE DROP;
--------------------------------------------------------------------------------
SHUTDOWN 语法
SHUTDOWN [ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]]
关闭当前运行的 Oracle 数据库例程,同时还可以关闭和卸载数据库。
要以正常方式关闭数据库,请输入
SHUTDOWNDatabase closed.Database dismounted.Oracle instance shut down.&
--------------------------------------------------------------------------------
START 语法
STA[RT] {url[.ext] } [arg...]
调用并运行由 Web 服务器的 URL 指定的脚本。
文件名为 PROMOTE 且扩展名为 SQL 的文件 (用于提升员工) 可能包含以下命令:
SELECT FIRST_NAME, LAST_NAME, JOB_ID, SALARYFROM EMP_DETAILS_VIEWWHERE JOB_ID='&1' AND SALARY&&2;要运行此脚本,请输入
START PROMOTE ST_MAN 7000或者,如果该文件位于 Web 服务器上,则用以下格式输入命令:
ST_MAN 7000其中,必须用脚本所在的 Web 服务器所使用的 host.domain 名称替换 machine_name.domain、而用端口号替换 port。
将执行以下命令:
SELECT LAST_NAME, LAST_NAMEFROM EMP_DETAILS_VIEWWHERE JOB_ID='ST_MAN' AND SALARY&7000;并显示结果。
--------------------------------------------------------------------------------
STARTUP 语法
STARTUP options | upgrade_options
其中,options 使用以下语法:
[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] | [ OPEN [open_options] [dbname] ] | NOMOUNT]
其中 open_options 使用以下语法:
READ {ONLY | WRITE [RECOVER]} | RECOVER
其中 upgrade_options 使用以下语法:
[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]
使用多个选项启动 Oracle 数据库例程,同时装载和打开数据库。
要使用标准参数文件启动一个例程,装载默认数据库并打开该数据库,请输入
STARTUP或者输入
STARTUP OPEN database要使用标准参数文件启动一个例程,装载默认数据库并打开该数据库,请输入
STARTUP FORCE RESTRICT MOUNT要使用参数文件 TESTPARM 启动一个例程而不装载该数据库,请输入
STARTUP PFILE=testparm NOMOUNT要关闭某个特定数据库、立即重新启动并打开该数据库、只允许拥有 RESTRICTED SESSION 权限的用户访问它,并使用参数文件 MYINIT.ORA,请输入
STARTUP FORCE RESTRICT PFILE=myinit.ora OPEN database
--------------------------------------------------------------------------------
TIMING 语法
TIMI[NG] [START text | SHOW | STOP]
记录过去一段时间的计时数据,列出当前计时器名称和计时数据,或者列出当前活动计时器的数量。
要创建名为 SQL_TIMER 的计时器,请输入
TIMING START SQL_TIMER要列出当前计时器的标题和累计时间,请输入
TIMING SHOW要列出当前计时器的标题和累计时间并移去该计时器,请输入
TIMING STOP
--------------------------------------------------------------------------------
TTITLE 语法
TTI[TLE] [printspec [text | variable] ...] [ON | OFF]
其中,printspec 代表以下一个或多个用于放置文本并设置格式的子句:
FORMAT text
S[KIP] [n]
在每页报告的顶部放置指定的标题并设置其格式。输入无子句的 TTITLE 将列出它的当前定义。仅当 TTITLE 命令后面引号内是单个单词或字符串,才使用旧格式的 TTITLE。
要将&Monthly Analysis&定义为顶部标题并且左对齐,将日期居中,将三位格式的页码右对齐,以及在下一行居中显示&Data in Thousands&,请输入
TTITLE LEFT 'Monthly Analysis' CENTER '01 Jan 2003' -RIGHT 'Page:' FORMAT 999 SQL.PNO SKIP CENTER -'Data in Thousands'Monthly Analysis&&&&&&&&&&&&&&& 01 Jan 2003&&&&&&&&&&&&&&&&&&&&& Page: 1&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Data in Thousands&
要禁止显示顶部标题而不更改其定义,请输入
TTITLE OFF
--------------------------------------------------------------------------------
UNDEFINE 语法
UNDEF[INE] variable ...
其中 variable 代表要删除的替代变量的名称。
删除一个或多个显式 (使用 DEFINE 命令) 或隐式 (使用 START 命令的一个参数) 定义的替代变量。
要取消替代变量 POS 的定义,请输入
UNDEFINE POS要取消两个名为 MYVAR1 和 MYVAR2 的替代变量的定义,请输入
UNDEFINE MYVAR1 MYVAR2
--------------------------------------------------------------------------------
VARIABLE 语法
VAR[IABLE] [variable [type] ]
其中 type 代表以下类型之一:
CHAR (n [CHAR | BYTE])
VARCHAR2 (n [CHAR | BYTE])
NVARCHAR2 (n)
BINARY_FLOAT
BINARY_DOUBLE
声明一个可以在 PL/SQL 中引用的绑定变量。
要释放 CLOB 和 NCLOB 绑定变量使用的资源,可能需要使用以下命令手动释放临时 LOB:
EXECUTE DBMS_LOB.FREETEMPORARY(:cv)示例
以下示例显示了如何创建绑定变量,更改变量值,以及显示当前值。
要创建绑定变量,可输入:
VARIABLE ret_val NUMBER
要在 SQL*Plus 中更改此绑定变量,必须使用 PL/SQL 块:
BEGIN&:ret_val:=4;END;/PL/SQL procedure successfully completed.&
要在 SQL*Plus 中显示绑定变量的值,可输入:
PRINT ret_val&& RET_VAL----------&&&&&&&& 4&
以下示例说明如何创建绑定变量,然后将其设置为某个函数返回的值。
VARIABLE id NUMBERBEGIN& :id := EMP_MANAGEMENT.HIRE& ('BLAKE','MANAGER','KING',2990,'SALES');END;/
存储过程返回的值放到绑定变量 :id 中。可以使用 PRINT 命令显示,或者用于后面的 PL/SQL 子程序。
以下示例说明如何自动显示一个绑定变量:
SET AUTOPRINT ONVARIABLE a REFCURSORBEGIN& OPEN :a FOR SELECT LAST_NAME, CITY, DEPARTMENT_ID& FROM EMP_DETAILS_VIEW& WHERE SALARY & 12000& ORDER BY DEPARTMENT_ID;END;/PL/SQL procedure successfully completed.LAST_NAME&&&&&&&&&&&&&&&&& CITY&&&&&&&&&&&&&&&&&&&&&&&&&&& DEPARTMENT_ID-------------------------& ------------------------------& -------------Hartstein&&&&&&&&&&&&&&&&& Toronto&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 20Russell&&&&&&&&&&&&&&&&&&& Oxford&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 80Partners&&&&&&&&&&&&&&&&&& Oxford&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 80King&&&&&&&&&&&&&&&&&&&&&& Seattle&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 90Kochhar&&&&&&&&&&&&&&&&&&& Seattle&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 90De Haan&&&&&&&&&&&&&&&&&&& Seattle&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 90
6 rows selected.&
在上面的示例中,要显示该变量,并不需要执行 PRINT 命令。
--------------------------------------------------------------------------------
WHENEVER OSERROR 语法
WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
如果发生操作系统错误,则执行指定的操作 (默认操作为停止当前的脚本) 并将焦点返回到工作区。
以下脚本中的命令导致 iSQL*Plus 停止处理当前脚本,并将焦点返回到工作区上的&输入&区域:
WHENEVER OSERROR EXITSTART no_such_file
--------------------------------------------------------------------------------
WHENEVER SQLERROR 语法
WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
如果 SQL 命令或 PL/SQL 块出现错误,则执行指定的操作 (默认操作为停止当前的脚本) 并将焦点返回到工作区。
如果 SQL UPDATE 命令失败,以下脚本中的命令将导致 iSQL*Plus 停止处理当前脚本,并将焦点返回到工作区上的&输入&区域:
WHENEVER SQLERROR EXIT SQL.SQLCODEUPDATE EMP_DETAILS_VIEW SET SALARY = SALARY*1.1;以下示例显示,在 SQL*Plus 命令出现错误后不执行 WHENEVER SQLERROR 命令,而在 SQL 命令或 PL/SQL 块出现错误后执行该命令:
WHENEVER SQLERROR EXIT SQL.SQLCODEcolumn LAST_name headIing "Employee Name"Unknown COLUMN option "headiing"
SHOW non_existed_option&
--------------------------------------------------------------------------------
XQUERY 语法
XQUERY xquery_statement
SQL*Plus XQUERY 命令使您能够对指定的数据库执行 XQuery 1.0 查询。在 Oracle 数据库 10g (发行版 2) 和更高版本中支持 XQUERY。如果尝试在较早的 Oracle 数据库版本中使用 XQUERY,将出现错误:
SP2-614 服务器版本太低
另请参阅 SET XQUERY 命令:
SET XQUERY BASEURI {text},
SET XQUERY ORDERING {UNORDERED | ORDERED | DEFAULT}
SET XQUERY NODE {BYVALUE | BYREFERENCE | DEFAULT}
SET XQUERY CONTEXT {text}
以下脚本中的 XQuery 语句查询 HR 方案的 EMP_DETAILS_VIEW 视图:
set long 160set linesize 160xquery for $i in ora:view("EMP_DETAILS_VIEW") return $i/Result Sequence-------------------------------------------------------------------------------------------&ROW&&EMPNO&7369&/EMPNO&&ENAME&SMITH&/ENAME&&JOB&CLERK&/JOB&&MGR&7902&/MGR&&HIREDATE&17-DEC-80&/HIREDATE&&SAL&800&/SAL&&DEPTNO&20&/DEPTNO&&/ROW&
14 item(s) selected.&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:31924次
排名:千里之外
原创:14篇
(3)(3)(9)(1)(4)

我要回帖

更多关于 mit人脸数据库 的文章

 

随机推荐