SQLSTATE 指示最近执行的 SQL 语句是否产生了成功、错误或警告状态。
String
数据库服务器会为其执行的每个 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 函数。
SQL/2008 以值 '0' 至 '4' 和 'A' 至 'H' 开头的 SQLSTATE 类(前两个字符)由 ANSI 标准定义。其它类则是由具体实现自行定义。同样,以值 '0' 至 '4' 和 'A' 至 'H' 开头的子类值由 ANSI 标准定义。这些范围之外的子类值由具体实现自行定义。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |