Watcom-SQL 方言中的缺省过程错误处理方式不同于 Transact-SQL 方言中的缺省过程错误处理方式。缺省情况下,Watcom-SQL 方言过程在它们遇到错误时退出,并且将 SQLSTATE 值和 SQLCODE 值返回到发出调用的环境中。
显式的错误处理可以使用 EXCEPTION 语句来置入到 Watcom-SQL 存储过程中,或者,您可以使用 ON EXCEPTION RESUME 语句指示该过程在遇到错误时从下一个语句继续执行。
当 Transact-SQL 方言过程遇到错误时,将从下一个语句继续执行。全局变量 @@error 保存最近执行过的语句的错误状态。您可以在语句之后检查这一变量,以强制从过程中返回。例如,以下语句在出错时将导致退出。
IF @@error != 0 RETURN
当该过程执行完之后,返回值将表明该过程是成功还是失败。此返回状态是一个整数,并且可以按如下方式对其进行访问:
DECLARE @status INT EXECUTE @status = proc_sample IF @status = 0 PRINT 'procedure succeeded' ELSE PRINT 'procedure failed'
下表介绍了内置的过程返回值以及这些值的含义:
| 值 | 含义 |
|---|---|
| 0 | 过程执行时没有发生错误 |
| –1 | 缺少对象 |
| –2 | 数据类型错误 |
| –3 | 进程被选作死锁牺牲品 |
| –4 | 权限错误 |
| –5 | 语法错误 |
| –6 | 杂类用户错误 |
| –7 | 资源错误,如空间不足 |
| –8 | 非致命的内部问题 |
| –9 | 达到系统限制 |
| –10 | 致命的内部不一致性 |
| –11 | 致命的内部不一致性 |
| –12 | 表或索引损坏 |
| –13 | 数据库损坏 |
| –14 | 硬件错误 |
RETURN 语句可用于返回其它整数,由用户定义它们的含义。
在过程中使用 RAISERROR 语句
Watcom-SQL 方言中与 Transact-SQL 类似的错误处理
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。