Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语言元素 » 特殊值

 

SQLSTATE 特殊值

SQLSTATE 指示最近执行的 SQL 语句是否产生了成功、错误或警告状态。

数据类型

字符串

注释

数据库服务器会为其执行的每个 SQL 语句设置 SQLSTATE 和 SQLCODE。SQLSTATE 是一个字符串,用以指示最近执行的 SQL 语句是否产生了成功、警告或错误状态。

每个 SQLSTATE 都代表所有平台通用的错误,这些错误通常包含非特定于产品的说明文字。SQLSTATE 值的格式是一个双字符类值,后面跟一个三字符子类值。关于类和子类值的 SQLSTATE 合规性的原则在 ISO/ANSI SQL 标准中有介绍。

除了以下补充和例外,SQL Anywhere 符合 ISO/ANSI SQLSTATE 约定:

类和子类 条件
01WCx 与字符集转换相关的警告
38xxx 外部函数异常
42Xxx 语法错误:表达式
42Rxx 语法错误:参照完整性(例如,尝试创建第 2 个主键)
42Wxx 语法错误:通用
42Uxx 语法错误:重复的、未定义的或不明确的对象引用
42Zxx 访问违规
54Wxx 超出产品限制
55Wxx 对象未处于操作成功所需的状态
57xxx 资源不可用或运算符干预
5Rxxx SQL Remote 错误
WBxxx 联机备份错误
WIxxx 内部数据库错误
WPxxx 过程、变量等的错误
WLxxx 装载和/或卸载错误
WWxxx 其它特定于 SQL Anywhere 的错误/警告(包括系统故障)
WOxxx 与远程数据访问功能相关的错误
WJxxx JCS 和 JDBC 相关的错误
WCxxx 字符转换错误
WXxxx 与 XML 相关的错误
WTxxx 与文本相关的错误

成功完成的类为 '00xxx'(例如,'00000')。

SQLSTATE 和 SQLCODE 相关联:每个 SQLCODE 对应一个 SQLSTATE,而每个 SQLSTATE 对应一个或多个 SQLCODE。

要返回与 SQLSTATE 相关的错误状态,可以使用 ERRORMSG 函数。请参见ERRORMSG 函数 [Miscellaneous]

要查看 SQL Anywhere 所使用的 SQLSTATE 值,请参见按 SQLSTATE 排序的 SQL Anywhere 错误消息

另请参见
标准和兼容性
  • SQL/2003:核心特性   以值 '0' 至 '4' 和 'A' 至 'H' 开头的 SQLSTATE 类(前两个字符)由 ANSI 标准定义。其它类则是由具体实现自行定义。同样,以值 '0' 至 '4' 和 'A' 至 'H' 开头的子类值由 ANSI 标准定义。这些范围之外的子类值由具体实现自行定义。