SQLSTATE值的上市
本主题中的表格提供的SQLSTATE代码可以由DB2 ? UDB返回应用程序用于iSeries?的描述。 该表包括SQLSTATE值,它们的含义,和其对应的SQLCODE值。
表1 类代码00:不合格的圆满完成 SQLSTATE值 00000 的含义 完成的操作是成功的,并没有造成任何类型的警告或异常情况。 表2 类代码01:警告 SQLSTATE值 01002 01003 01004 01005 01006 01007 01009 0100A 0100C 0100D 0100E 01503 01504 01505 01506 01515 的含义 断开连接时发生错误。 Null值被淘汰列函数的参数。 一个字符串值被截断时,分配给另一个长度较短的字符串数据类型。 SQLDA中的条目数量不足。 没有被撤销的特权。 没有被授予特权。 搜索条件是信息架构太长。 该视图的查询表达式是信息架构太长。 从过程返回一个或多个专案的结果集。 内链的下一个结果已经重开已关闭的游标。 过程返回结果集太多。 结果列数大于提供的主机变量的数目。 UPDATE或DELETE语句不包括WHERE子句。 SQLCODE值 596 000 000,445,802,20141 239 569 570 177 178 466 467 464,20206 000,030 000,088 SQLCODE值 000 声明不被执行,因为它是不可接受的,在这种环境下。 084 调整是为日期或时间戳记值,以正确的算术运算产生一个无效的日期。 空值已分配到一个主机变量,因为非空值的列是主机变量的范围内。 000 304 表1 类代码00:不合格的圆满完成 SQLSTATE值 01517 01519 01520 01522 01526 的含义 一个不能转换的字符被替换与替换字符。 空值已被分配到一个主机变量,因为一个数字值超出范围。 SQLCODE值 335 802 空值已被分配到一个主机变量,因为不能转换的字符。 331 创建别名语句中使用本地表或视图名称是不确定的。 403 隔离级别已经升级。 595 一个SET语句引用一个特殊的寄存器在AS不存在。 799 01527 01528 01532 01534 01535 01536 01539 01542 01544 01545 01547 01548 01557 01564 01565 WHERE NOT NULL,被忽略,因为索引键不能包含空值。 645 检测到未定义的对象名称。 datetime值的字符串表示形式是无效的。 上一个日期或时间戳记算术运算的结果不是日期的有效范围内。 远程绑定,检查是否存在递延期间,指定的服务器名称不匹配当前服务器。 连接是成功的,但应使用唯一的SBCS字符。 授权ID没有指定的权限来执行该操作。 空值已被分配到一个主机变量,因为一个子串错误发生,例如,SUBSTR的参数超出范围。 不合格的列名被解释为一个相关的参考。 混合数据值是不正确的形成。 授权标识不具有执行指定的操作所确定的对象上的特权。 已指定的SELECT INTO或FETCH太多的主机变量。 空值被分配到一个主机变量,因为发生除数为零。 204 180,181 183 114 863 552 138 012 191,304,802 551 326 802 空值已被分配到一个主机变量,因为一个杂项数据发304,420,802 生异常,例如,科协,十进制,浮标,或整数的标量函数的字符值是无效的;浮点NaN(不是一个数字)或压缩十进制字段中的无效数据检测。 表1 类代码00:不合格的圆满完成 SQLSTATE值 01567 01587 01593 01594 的含义 创建表,但没有日志。 SQLCODE值 7905 工作单位提交或回滚,但结果不完全已知的所有站点。 990 一个ALTER TABLE可能会导致数据截断。 460 SQLDA中的所有信息(即不足够的描述符来返回不同的237 名字)的条目的数量不足。 1530 01623 值将被忽略的程度。 01627 01634 01643 01646 01647 01658 01660 01662 01Hxx DATALINK值可能无法有效调和等候或调和,因为该表360 是不是一个可能的状态。 不同的数据类型的名称太长,不能返回SQLDA中。 返7036 回短名称。 SQLCODE或SQLSTATE变量赋值没有警告或错误的信号。 385 因为游标被关闭,不能返回的结果集。 前触发DB2SQL改变DB2ROW。 7050 7051 二进制数据是无效DECRYPT_CHAR和DECYRYPT_DB的。 20224 创建例程,但恢复将不会更新目录。 发行记录选项关闭时忽略。 7909 30107 有效的警告的SQLSTATE返回一个用户定义的函数或外462 部过程调用。 表3 类代码02:无数据 SQLSTATE值 02000 出现下列异常之一: 的含义 SQLCODE值 100 SELECT INTO语句或INSERT语句的子查询的结果是一个空表。 ? 在搜索的UPDATE或DELETE语句确定的行数是零。 ? 在FETCH语句中引用光标位置后的结果表的最后一行。 ? 取的方向是无效的。 ? 表3 类代码02:无数据 SQLSTATE值 02001 的含义 没有额外的结果集返回。 SQLCODE值 387 20298 02505 获取描述符值小于count更大。 表4 类代码07:动态SQL错误 SQLSTATE值 07001 07002 07003 07004 07005 07006 的含义 主机变量的数目是不正确的参数标记。 调用的参数列表或控制块是无效的。 SQLCODE值 -313 -804 EXECUTE语句确定的声明是一个选择语句,或不准备状-518 态。 使用子句或INTO子句是必需的动态参数。 -313 声明游标的名称标识一份声明中,不能与游标相关联。 -517 过渡变量,输入主机变量或参数标记不能使用,因为它的数据类型。 -301 -074 -075 07008 描述符的计数是无效的。 07009 描述符索引是无效的。 表5 类代码08:连接异常 SQLSTATE值 08001 的含义 应用程序请求是无法建立连接。 SQLCODE值 -30080,-30082,-30089 -842 -843,-900 -30060,-30061 -858 08002 08003 08004 08501 连接已经存在。 连接不存在。 应用服务器拒绝建立连接。 不允许断开连接时,使用一个LU6.2保护的谈话。 表6 类代码09:触发的动作异常 。 SQLSTATE值 09000 的含义 触发的SQL语句失败。 表7 类代码0A:功能不支持 SQLCODE值 -723 SQLSTATE值 0A001 的含义 SQLCODE值 CONNECT语句是无效的,因为这个过程是不是在连接状-752 态。 表8 类代码0E:无效的架构名单规范 SQLSTATE值 0E000 的含义 架构名称列表中的一个SET PATH语句是无效的。 表9 类代码0F:无效的令牌 SQLCODE值 -329 SQLSTATE值 0F001 的含义 定位值目前并不代表任何价值。 表10 类代码0K:RESIGNAL当处理程序不活跃 SQLCODE值 -423 SQLSTATE值 0K000 的含义 一个RESIGNAL发出,但一个处理不积极。 表11 类代码0W:禁止声明在触发器中遇到的 SQLCODE值 -787 SQLSTATE值 0W000 的含义 声明是不允许在一个触发器。 表12 类代码0Z:诊断异常 SQLCODE值 -751 SQLSTATE值 0Z001 0Z002 的含义 堆叠诊断领域的最大数量超过。 没有有效的处理程序访问的堆积诊断。 表13 类代码20:案例没有发现Case语句 SQLCODE值 -20226 -20228 SQLSTATE值 20000 的含义 CASE语句的案件没有被发现。 SQLCODE值 -773