WHENEVERSQLERROR的使用 sql error

语法:
WHENEVER SQLERROR
{EXIT [SUCCESS|FAILURE|WARNING|n|variable|:BindVariable]
[COMMIT|ROLLBACK]|CONTINUE [COMMIT|ROLLBACK|NONE]}


作用:
当 sql、pl/sql 执行过程中出现错误,则执行一些操作。注:不包括 sql*plus 命令的错误。

出现错误时,可以执行两种操作 EXIT 和 CONTINUE,分别为退出 sql*plus 和 不退出。
[SUCCESS|FAILURE|WARNING|n|variable|:BindVariable]的具体作用没有搞清楚,可能是以什么样的方式退出 sql*plus 吧,如 SUCCESS、FAILURE 或者用变量,比如SQL.SQLCODE。
[COMMIT|ROLLBACK]:在退出 SQL*PLUS 前是提交事务还是回滚事务。
[COMMIT|ROLLBACK|NONE]:如果不退出,那么也可以指定提交事务还是回滚事务,或者什么也不做。

实验:

SQL> whenever sqlerror exit SQL.SQLCODE rollback
SQL> select sysdate from dual;


SYSDATE
----------
2006-03-31


SQL> update aa set ff=5;
update aa set ff=5
*
WHENEVERSQLERROR的使用 sql error
ERROR at line 1:
ORA-00942: table or view does not exist



Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 -Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production


WHENEVER SQLERROR 生命周期应该是自该命令执行到 sql*plus 退出前的所有时段,下面实验可以证明:



C:Documents and Settingschent>sqlplus"sys/change_on_install@sbox as sysdba"


SQL*Plus: Release 9.2.0.6.0 - Production on Fri Mar 31 17:00:442006


Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.



Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production


SQL> whenever sqlerror continue rollback
SQL> select sysdate from dual;


SYSDATE
----------
2006-03-31


SQL> update aa set ff=5;
update aa set ff=5
*
ERROR at line 1:
ORA-00942: table or view does not exist



Rollback complete.


SQL> disconnect
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 -Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production
SQL> conn sys/change_on_install@sbox as sysdba
Connected.
SQL> update aa set ff=5;
update aa set ff=5
*
ERROR at line 1:
ORA-00942: table or view does not exist



Rollback complete.


SQL> conn sys/change_on_install@mliv as sysdba
Connected.
SQL> update aa set ff=5;
update aa set ff=5
*
ERROR at line 1:
ORA-00942: table or view does not exist



Rollback complete.


SQL> exit
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.0.0 -Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production


C:Documents and Settingschent>sqlplus " as sysdba"


SQL*Plus: Release 9.2.0.6.0 - Production on Fri Mar 31 17:04:112006


Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.



Connected to:
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production


SQL> update aa set ff=5;
update aa set ff=5
*
ERROR at line 1:
ORA-00942: table or view does not exist



SQL>


下面实验证明 WHENEVER SQLERROR 不影响sql*plus的命令错误:


SQL> whenever sqlerror exit sql.sqlcode rollback
SQL> print jdfk
SP2-0552: Bind variable"JDFK" not declared.

参考:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a90842/ch13.htm#1074195

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/208395.html

更多阅读

痄腮散的使用说明 宝宝炸腮怎么办

腮腺炎,中医学称“痄腮”, 民间也称“猪头肥”。是儿童和青少年中常见的呼吸道传染病,由腮腺炎病毒所引起。冬春季节发病较多,病人是传染源,飞沫的吸入是主要传播途径,接触病人后2-3周发病。腮腺炎主要表现为一侧或两侧耳垂下肿大,肿大的腮

详解暖宝宝的使用方法 暖宝宝使用方法

暖宝宝能够快速热敷、消肿、止痛、活血化瘀,广泛适用于各种畏寒症。并能快速缓解并消除各种畏寒疾病引起的疼痛,是关节炎、肩周炎、腰腿痛、风湿及类风湿、四肢发凉、患处遇寒疼痛等疾病患者迅速止痛的即开即用型产品。详解暖宝宝的使

卷发器怎么用?图解卷发器的使用方法 卷发器的使用方法图解

卷发器怎么用?图解卷发器的使用方法——简介很多MM都有卷发情结,漂亮的卷发成了众多爱美女士的追求,对于爱美的MM们来说,卷发器已经成为了可以自己动手打造百变造型的重要家电产品。不用去发廊就可以自己做出漂亮的卷发,下面就跟随小编一

消防栓的使用方法 消火栓的正确使用方法

消防栓的使用方法——简介消防栓是安装在消防给水管网上的,主要供消防队灭火使用。分地上、地下两种。地上消防栓适于气温较高的地方,其供水接口装在高于路面的垂直筒体上。地下消防栓和地下消防栓构造大致相似,主要由弯管、阀体、阀座

声明:《WHENEVERSQLERROR的使用 sql error》为网友划一舟意中人分享!如侵犯到您的合法权益请联系我们删除