首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Sybase >

SybaseIQ 存储过程错误处理

2012-07-20 
SybaseIQ 存储过程异常处理Sybase IQ数据库中,有两种异常信息,一种是警告warning、一种是错误error。在存储

SybaseIQ 存储过程异常处理
Sybase IQ数据库中,有两种异常信息,一种是警告warning、一种是错误error。
在存储过程中,对这两种异常信息做了不同的处理
1)在发生告警信息的时候,IQ会继续执行。
2)在发生error时,IQ提供了两种处理方式:

第一种是默认方式,在默认方式下,数据库会将错误发生的SQLSTATE、SQLCODE返回到调用存储过程的环境中,比如说你调用存储过程所使用的客户端

第二种是在创建SP的时候,可以指定,ON EXCEPTION RESUME 子句。如下:
CREATE PROCEDURE dba.sp_name()
ON EXCEPTION RESUME

使用ON EXCEPTION RESUME子句,过程会根据 ON_TSQL_ERROR 选项的设置采取不同的操作。如果 ON_TSQL_ERROR 设置为CONDITIONAL (缺省设置),则当下一条语句处理错误时,将继续执行下面的语句;否则将退出。

我写了一个简单的过程来测试的:

Hello from OuterProc.Hello from OuterProc.


若将if 处理语句去掉,则会显示出错。

在IQ中,处理语句还包括:
? IF
? SELECT @variable =
? CASE
? LOOP
? LEAVE
? CONTINUE
? CALL
? EXECUTE
? SIGNAL
? RESIGNAL
? DECLARE
? SET VARIABLE

热点排行