sqlcode sqlstate 说明
000 00000 SQL语句成功完成
01xxx SQL语句成功完成,但是有警告
+012 01545 未限定的列名被解释为一个有相互关系的引用
+098 01568 动态SQL语句用分号结束
+100 02000 没有找到满足SQL语句的行
+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统
+111 01590 为2型索引设置了SUBPAGES语句
+117 01525 要插入的值的个数不等于被插入表的列数
+162 01514 指定的表空间被置为检查挂起状态
+203 01552 使用非唯一的名字来解决命名的限定列
+204 01532 命名的对象未在DB2中定义
+206 01533 命名的列不在SQL语句中指定的任何表中存在
+218 01537 因为SQL语句引用一个远程对象,不能为该SQL语句执行EXPLAIN
+219 01532 命名的PLAN TABLE不存在
+220 01546 不正确定义PLAN TABLE,检查命名列的定义
+236 01005 SQLDA中的SQLN的值至少应于所描述的列的个数一样大
+237 01594 至少有一个被描述的列应该是单值类型,因此扩展的SQLVAR条目需要另外的空间
+238 01005 至少应有一个被描述的列是一个LOB,因此扩展的SQLVAR条目需要另外的空间
+239 01005 至少应有一个被描述的列应是单值类型,因此扩展的SQLVAR条目需要另外的空间
+304 01515 该值不能被分配给宿主变量,因为该值不再数据类型的范围之内
+331 01520 不能被翻译的字符串,因此被设置为NULL
+339 01569 由于与DB2 2.2版本的子系统连接,所以可能存在字符转换问题
+394 01629 使用优化提示来选择访问路径
+395 01628 设置了无效的优化提示,原因代码指定了为什么,忽略优化提示
+402 01521 未知的位置
+403 01522 本地不存在CREAT ALIAS对象
+434 01608 在DB2未来发布的版本中将不支持指定的特性,IBM建议你停止使用这些特性
+445 01004 值被CAST函数截取
+462 01Hxx 由用户定义的函数或存储过程发出的警告
+464 01609 命名的存储过程超出了它可能返回的查询结果集的个数限制
+466 01610 指定由命名的存储过程返回的查询结果集的个数。成功完成
+494 01614 由存储过程返回的结果集的个数超过了由ASSOCIATE LOCATORS语句指定的结果集定位器的个数
+495 01616 因为倒台SQL的成本估算超出了在ELST中指定的警告阀值,所以发出警告
+535 01591 请求一个主健的定位更新,或请求一个使用自我引出 约束的表的删除操作
+541 01543 命名外健是一个重复的引用约束
+551 01548 命名的授权ID缺少在命名的DB2对象上执行命名操作的权限
+552 01542 命名的授权ID缺少执行命名操作的权限
+558 01516 已经被授权该PUBLIC,因此WITH GRANT OPTION不可用
+561 01523 对ALTER REFERENCES INDEX 和TRIGGER特权,PUBLIC AT ALL LOCATION无效
+562 01560 因为GRANTEE已经拥有这些特权,所以一个或更多的特权被忽略
+585 01625 模式名指定了不止一次
+599 01596 没有为长字符数据类型(BLOB,CLOB和DBCLOB)建立比较函数
+610 01566 由于建立了一个指定为DEFER YES的索引,指定的对象处于PENDING状态,或者因为使用了ALTER INDEX改变关键值的范围,所以指定的对象处于PENDING状态
+625 01518 因为删除了主健索引,所以表定义被标注为不完整
+626 01529 删除了加强UNIQUE约束的索引,唯一性不在被加强
+645 01528 因为建立的索引中没有包含NULL,所以WHERE NOT NULL被忽略
+650 01538 不能更改或者建立已命名的表为从属表
+653 01551 在已指定的分区表空间中尚没有建立指定的分区索引,所以分区索引不可得
+655 01597 为CREATE或ALTER STOGROUP语句指定特定或者非特定的卷ID,在DB2较新发布的版本中(版本6以后)将不再支持他们
+658 01600 当建立目录索引时,不能指定SUBPAGES语句,SUBPAGES将被忽略,并缺省为1
+664 01540 分区索引的限制关键字超出了最大值
+738 01530 已命名的对象的更改可能像只读系统中对象的改变要求一样
+799 0157 SET语句中引用的特定寄存器不存在,将忽略 SET请求
+802 01519 数据溢出或者因除法异常而引起的数据异常错误
+806 01553 ISOLATION(RR)与LOCKSIZE PAGE 冲突
+807 01554 由于十进制乘法导致溢出
+863 01539 连接成功,但是只支持SBCS
+2000 56094 SUBPAGES不等于1的1型索引不能成为数据共享环境中的缓冲池组依赖者
+2002 01624 因为指定的缓冲池不允许超高速缓存,GNPCACHE指定被忽略
+2007 01602 因为DB2子系统的参数禁用“提示(hiats)”所以不能指定优化提示
+30100 01558 分布式协议错误被检测到,提供原来的SQLCODE和SQLSTATE
-007 42601 SQL语句中由非法字符
-010 42603 字符串常量非正常终止;检查到有遗漏的引号标志
-029 42601 需要INTO语句
-060 42815 某特定数据类型的长度或者标量规范无效
-084 42612 不能执行SQL语句,因为该语句对动态SQL无效或者对OS/390的DB2无效
-097 42601 在单位类型、用户自定义的函数以及过程中不能使用带有CAST的LONG VARCHAR或LONGVARGRAPHIC
-101 54001 SQL语句超出了已确定的DB2限制:例如,表的数目太多,语句中的字节太多
-102 54002 字符串常量太长
-103 42604 无效数学文字
-104 42601 SQL语句中遇到非法符号
-105 42604 无效的字符串格式;通常引用一个格式不正确的图形字符串
-107 42622 对象名太长
-108 42601 RENAME语句中指定的名字有错误,不能使用限定词
-109 42601 指定了无效语句;例如CREATE VIEW不能包含ORDER BY 语句
-110 42606 遇到了无效的十六进制的文字
-111 42901 指定的列函数没有给出列名
-112 42607 无效的列函数语法;列函数不能运行与其他的列函数之上
-113 42602 遇到无效字符
-114 42961 该语句的位置名称必须与当前服务器匹配,但是却没有匹配
-115 42601 因为比较运算符没有伴着一个表达式或者列表,遇到了无效谓词
-117 42802 待插入的数值的个数于被插入的行中的列数不相等
-118 42902 数据修改语句(UPDATE或DELETE)和FROM语句中的表和视图命名不合法
-119 42803 HAVING语句中的列的列表与GROUP BY语句中的列列表不匹配
-120 42903 不允许WHERE语句、SET语句、VALUES语句或者SET ASSIGNMENT语句引用列函数
-121 42701 在INSERT或UPDATE语句中,某一列被非法引用了两次
-122 42803 非法使用了列函数。因为没有用于一个列函数的所有列不再GROUP BY语句中
-123 42601 特定位置的参数必须是一个常数或者一个关键词
-125 42805 ORDER BY语句中指定了无效数字,该数字要么小于1要么大于选定的列数
-126 42829 不能为一个UPDATE语句指定ORDER BY语句
-127 42905 在子选择中DISTINCT只能指定一次
-128 42601 SQL谓词中NULL使用不当
-129 54004 SQL语句中包含的表多于15个
-130 22019 ESCAPE语句必须为一个字符
22025 无效的ESCAPE模式
-131 42818 LIKE谓词只能用于字符数据
-132 42824 LIKE语句、ESCAPE语句、LOCATE函数或POSSTR函数中有无效运算对象
-133 42906 无效相关子查询引用
-134 42907 大于255字节的列被不正确使用
-136 54005 排序关键字的长度大于4000字节
-137 54006 被连接的字符串太大;字符的最大值为32767;图形的最大值为16382
-138 22011 SUBSTR列函数的第二个或第三个操作符无效
-142 42612 不支持的SQL语句。该语句可能在另外的RDBMS上有效,也有可能在其他的上下文中有效(例如,VALUES只能在触发器中出现)
-144 58003 指定的段号无效
-147 42809 某一源函数不能更改。要改变源函数,必须删除该源函数并重新建立他
-148 42809 RENAME和ALTER无法执行。RENAME不能对视图或者活动RI.ST表重新命名。ALTER不能用于改变列的长度,因为该列参与了RI、一个用户退出程序、全局的临时表或打开DATACAPTURE CHANGES表的列
-150 42807 触发活动的INSERT,UPDATE或DELETE语句中指定了无效的视图更新或一个无效的转换表
-151 42808 试图更新一个不可更新的视图的列、一个DB2 CATALOG表的列或者一个ROWID列
-152 42809 DROP CHECK试图删除一个参照约束,或者DROP FOREIGN试图删除一个检查约束
-153 42908 无效的视图建立请求,必须为旋转列表中列出的列出的未命名的列或者重复的列提供一个名字
-154 42909 不能用UNION、UNION ALL或者一个远程表建立视图
-156 42809 在视图上建立索引是非法的,或者在ALTER TABLE,CREATE TRIGGER,DROP TABLE或LOCK TABLE语句上指定一个不是表的其他对象这是无效的
-157 42810 必须在FOREIGN KEY语句中指定一个表名
-158 42811 视图的列和选择列表中的列不相匹配
-159 42089 无效DROP或COMMENT ON语句
-160 42813 对该视图的WITH CHECK OPTION无效
-161 44000 正被更新的视图WITH CHECK OPTION语句使得这行不能被插入或更新
-164 42502 用户没有建立这个视图的权限
-170 42605 标量函数指定了无效的参数个数
-171 42815 标量函数指定了无效的数据类型长度或者无效数值
-173 42801 在非只读型的游标上不能指定隔离级别UR
-180 22007 DATE、TIME、TIMESTAMP值的字符串表示法的语法不对
-181 22001 不是有效的DATE、TIME、TIMESTAMP值
-182 42816 在算术表达式中的日期/时间值无效
-183 22008 在算术表达式中返回的日期/时间值的结果不在有效值的范围内
-184 42610 没有正确使用日期/时间值的参数标记
-185 57008 没有定义本定的日期/时间出口
-186 22505 改变本定的日期/时间出口引发这个程序的长度无效
-187 22506 MVS返回无效的当前日期/时间
-188 22503 字符串表示无效
-189 22522 指定的编码字符集的ID无效或没有定义
-190 42837 不能象所设定的那样改变(ALTER)列。只能改变(ALTER)VARCHAR列的长度
-191 22504 字符串中包含了无效的混合数据
-197 42877 当两个或多个表被联合在一起排序时,限定的列名不能在ORDER BY语句中使用
-198 42617 试图对空的字符串发布一个PREPARE或EXECUTE IMMEDIATE语句
-199 42601 SQL语句中使用了非法关键词
-203 42702 模糊列引用
-204 42704 没有定义的对象名
-205 42703 指定的表的列名无效
-206 42703 列名没有在FROM语句所引用的任何表中,或者没有在定义触发器所在的表中
-208 42707 不能ORDER BY指定列,应为该列不在选择列表中
-212 42712 指定的表名在触发器中不允许多次使用,只能使用一次
-214 42822 DISTINCT、ORDER BY 引起的无效表达式
-219 42704 因为PLAN_TABLE不存在,EXPLAIN无法执行
-220 55002 遇到无效的PLAN_TABLE列
-221 55002 如果为PLAN_TABLE定义了可供选择的列,那么,必须定义所有的列
-229 42708 指定的现场找不到
-240 428B4 LOCK TABLE语句的PART子句无效
-250 42718 没有定义本地位置名
-251 42602 记号无效
-300 22024 宿主变量或参数中的字符串不是以NULL为终止
-301 42895 无效的宿主变量数据类型
-302 22001 输入的变量值对指定的列无效
22003 输入的变量值对指定的列而言太大
-303 42806 因为数据类型不兼容,不能分配数值
-304 22003 因为数据超出了范围,不能分配数值
-305 22002 没有NULL指示符变量
-309 22512 因为引用的宿主变量被设置成NULL,所以谓词无效
-310 22501 十进制的宿主变量或参数包含非十进制数据
-311 22501 输入的宿主变量长度无效,或者时负值或者太大
-312 42618 没有定义宿主变量或者宿主变量不可用
-313 07001 宿主变量的个数不等于参数标识的个数
-314 42714 模糊的宿主变量引用
-327 22525 在最后分区的关键字范围内,不能插入行
-330 22021 不能成功的翻译字符串
-331 22021 字符串不能分配到宿主变量,因为其不能成功的被翻译
-332 57017 不能为两个命名的编码字符集的ID定义翻译规则
-333 56010 子类型无效导致翻译失败
-338 42972 ON语句无效,必须引用连接的列
-339 56082 访问DB2 2.2版本的子系统被拒绝,原因时ASCII到EBCDIC翻译不能进行
-350 42962 无效的大对象规范
-351 56084 SELECT列表中有不支持的数据类型
-352 56084 输入列表中有不支持的数据类型
-355 42993 LOB列太大,以至不能被记录在日志中
-372 428C1 每个表只允许有一个ROWID列
-390 42887 在上下文中指定的函数无效
-392 42855 自从前一次FETCH以来,指定游标的SQLDA已被不恰当的改变
-396 38505 在最后的访问过程中,视图执行SQL语句
-397 428D3 在某一列上不恰当的指定了GENERATED因为该列不是ROWID数据类型
-398 428D2 为某一个宿主变量请求LOCATOR,但是该宿主变量不是一个LOB
-399 22511 在INSERT语句中为ROWID列指定的值无效
-400 54027 在DB2编目中定义的用户自定义索引不能超过100个
-401 42818 算术操作符或比较操作符的操作对象不是兼容的
-402 42819 算术函数不能用于字符或日期时间数据
-404 22001 SQL语句指定的字符串太长
-405 42820 数值文字超出了范围
-406 22003 计算出的或者倒出的数值超出了范围
-407 23502 不能把NULL值插到定义为NOT NULL的列中
-408 42821 数值不能被更新或插入,因为他与列的数据类型不兼容
-409 42607 COUNT函数指定的运算对象无效
-410 42820 浮点文字笔30个字符的最大允许长度长
-411 56040 CURRENT SQLID使用无效
-412 42823 在子查询的选择列表中遇到了多个列
-413 22003 当转换为一个数字型数据类型时,数据溢出
-414 42824 LIKE谓词不能运行于用数字或日期时间类型定义的列
-415 42825 为UNION操作指定的选择列表不是联合兼容的
-416 42907 包含UNION操作符的SQL语句不允许有长的字符串列
-417 42609 两参数标识符作为运算对象被指定在同一谓词的两边
-418 42610 参数标识符使用无效
-419 42911 十进制除法无效
-420 22018 字符串自变量值不符合函数的要求
-421 42826 UNION操作的选择列表中没有提供相同数目的列
-423 0F001 为LOB或结果集定位器指定的值无效
-426 2D528 在不允许更新的应用服务器不允许执行COMMIT语句
-427 2D529 在不允许更新的应用服务器不允许执行ROLLBACK语句
-430 38503 在用户自定义的函数或存储过程中遇到了错误
-433 22001 指定的值太长
-435 428B3 无效的应用定义的SQLSTATE
-438 xxxxx 使用了RAISE_ERROR函数的应用发出了一个错误
-440 42884 存储过程或用户自定义函数的参数列表参数个数于预期的个数不匹配
-441 42601 与标量函数一起使用DISTINCT或ALL是不正确的用法
-443 42601 指定的外部函数返回错误的SQLSTATE
-444 42724 与被称为存储过程或用户自定义函数有关的程序不能找到
-449 42878 对存储过程或用户自定义的 函数,CREATE或ALTER语句不正确(缺失EXTERNAL NAME 子句)
-450 39501 存储过程或用户自定义函数写入存储器的值超过了参数声明的长度
-451 42815 CREATE FUNCTION中指定了不正确的数据类型
-453 42880 用户自定义函数中的RETURNS语句无效
-454 42723 指定的函数识别标记与已存在的另一函数的识别标记冲突
-455 42882 模式名不比配
-456 42710 为用户自定义函数指定的函数名已经存在
-457 42939 用户自定义函数或用户自定义类型正试图使用系统中定义的函数或者类型所用的名称
-458 42883 没有找到函数
-463 39001 特定的外部例程返回无效的SQLSTATE
-469 42886 参数定义为OUT或INOUT的CALL语句必须提供宿主变量
-470 39002 指定了NULL参数,但是该例程却不支持NULL
-471 55023 存储过程或用户自定义函数失败:提供原因代码
-472 24517 外部的函数程序使游标处于打开状态
-473 42918 用户自定义数据类型命名不能和系统定义的数据类型一样
-475 42866 结果类型不能被转换成RETURNS类型
-476 42725 在其模式中该函数不是独一无二的
-478 42893 不能DROP或REVOKE特定的对象,因为其他对象依赖于该对象
-480 51030 直到存储过程已经被CALL后,DESCRIBE PROCEDURE和ASSOCIATE LOCATORS才能被发布
-482 51030 存储过程不返回到任何一个定位器
-483 42885 CREATE FUNCTION语句中的参数个数与源函数中的参数个数不匹配
-487 38001 选择了NO SQL选项建立指定的存储过程或用户自定义函数,但却视图发布SQL语句
-491 42601 CREATE FUNCTION语句无效,因为该语句没有RETURNS语句或者因为该语句没有指定有效的SOURCE或者EXTERNAL语句
-492 42879 指定函数的指定参数的个数有错误
-495 57051 语句的估计处理器成本超出了资源限制
-496 51033 语句无法执行,因为当前服务器与调用存储过程的服务器不同
-497 54041 指定的数据库超过了32767 OBID的上限,或者CREATE DATABASE语句使之达到了32511DBID的上限
-499 24516 指定的游标已被分配到结果集,该结果集来自已经指定的存储过程
-500 24501 因为连接被破坏,WITH HOLD游标被关闭
-501 24501 在试图获取数据或关闭一个游标前必须打开一个游标
-502 24502 在没有关闭游标前不能再次打开游标
-503 42912 因为列在游标的FOR UPDATE OF语句中没有被指定,该游标用于获取该列,所以不能更新该列
-504 34000 不能引用一个游标,因为他不是定义到程序里的
-507 24501 在试图更新或者删除WHERE CURRENT OF前,必须打开游标
-508 24504 因为被引用的游标当前不是处于数据行上,所以不能被更新或删除
-509 42827 除了在游标上指定的那个表(该表由WHERE CURRENT OF语句引用的)以外,再也不能从别的表上更新数据
-510 42828 表或视图不能被修改
-511 42829 对不可修改的表或视图,FOR UPDATE OF语句无效
-512 56023 对远程对象的无效引用
-513 42924 一个别名不能再被定义成另外的别名
-514 26501 游标尚没有被准备
-516 26501 试图描述未准备好的SQL语句
-517 07005 因为SQL语句尚没有准备好,游标无效
-518 07003 试图执行尚没有准备好的SQL语句
-519 24506 当为游标的SQL语句发布一个准备语句是,游标不能是打开的
-525 51015 不能在已指定的程序包中执行SQL语句,因为在绑定时间内该程序包无效
-526 42995 在给定的上下文中,不能使用全局的临时表
-530 23503 对特定的约束名指定了无效的外健值
-531 23504 从版本5开始,父关键字的多行更新将试图删除一个外关键字依赖的父关键字值,在版本5以前,当引用主关键值外健值当前存在时,试图更新该主健值
-532 23504 删除操作违反了已指定的参照约束
-533 21501 多行插入无效,试图将多行插到自我引用的表中
-534 21502 可改变主健列值的更新语句不能在同一时刻用于更新多行
-535 21502 当从自我引用表中删除数据或者更新主健列时,不能指定WHERE CURRENT OF。不是版本5的子系统才调用该代码
-536 42914 因为某一特定表的参照约束存在,所以删除语句无效
-537 42709 在外健语句或主健语句的规范中,每个列的出现不能多于一次
-538 42830 无效的外健;不符合引用的表没有主健
-539 42888 不能定义外健,因为被引用的表没有主健
-540 57001 表定义不完整,直到为主健建立了唯一索引或UNIQUE语句、或者包含GENERATED BYDEFAULT属性的ROWID列
-542 42831 可以为空的列不允许作为主健的一部分包含在内
-543 23511 因为该表是指定了SET NULL删除规则的参照约束的父表而且检查约束不允许NULL,所以DELETE不能发生
-544 23512 不能用ALTER添加检查约束,因为已存在的某行与该检查约束冲突
-545 23513 INSERT或者UPDATE导致检查约束冲突
-546 42621 在CREATE或ALTER TABLE中指定的检查约束无效
-548 42621 因为指定的列而引起的检查约束无效
-549 42509 DYNAMICRULES(BIND)计划或程序包的无效SQL语句
-551 42501 用户试图对不拥有权限的特定的对象进行操作,或者表不存在
-552 42502 用户试图执行未被授权的操作
-553 42503 不能指定CURRENT SQLID,因为用户尚没有被允许改变那个ID
-554 42502 不能对你本身赋予一个权限
-555 42502 不能对你本身撤销一个权限
-556 42504 不能撤销用户没有拥有的权限
-557 42852 指定了不一致的授予或撤销关键词
-558 56025 为授予或撤销语句指定了无效的语句(一个或一组)
-559 57002 DB2权限机制已经禁用,授予或者撤销不能被发布
-567 42501 指定的权限ID缺少对指定的程序包的绑定权限
-571 25000 不允许多点更新
-573 42890 不能定义参照约束,因为已指定的父表中在指定的列上没有唯一健
-574 42864 指定的缺省与列定义冲突
-577 38002 试图修改用户自定义函数中的数据或者存储过程中的数据,但这些对象的建立没有选择MODIFIES SQL DATA选项
-579 38004 试图修改用户自定义函数中的数据或者存储过程中的数据,但这些对象的建立没有选择READ SQL DATA选项,也没有选择MODIFIES SQL DATA选项
-580 42625 CASE表达式中的结果表达式不能都是空的
-581 42804 CASE表达式中的结果表达式为不兼容的数据类型
-582 42625 SEARCHED-WHEN-CLAUSE中的查找条件指定了一个限定的、IN或EXISTS谓词
-583 42845 指定的函数失败,因为他不是决定性的,或者可能有外部动作
-585 42732 在当前路径中模式名不止一次出现
-586 42907 CURRENT PATH专用寄存器在长度上不能超过254字符
-587 428C6 项目引用的列表必须是同一个家族
-590 42734 在命名的存储过程或用户自定义的函数中的参数必须是独一无二的
-592 42510 没有授权权限,让你在WLM环境中建立的存储过程或者用户自定义函数
-601 42710 试图创建(或重命名)已经存在的对象
-602 54008 CREATE INDEX语句中指定的列太多
-603 23515 因为发现有重复值,所以不能建立唯一的索引
-604 42611 在CREATE或ALTER TABLE语句中的为数据类型指定的长度、精度以及标度无效
-607 42832 指定的INSERT、UPDATE或DELETE语句不能被发布,应为这些语句对DB2 CATLOG表执行写操作
-611 53088 当LOCKSIZE是TABLE或者TABLESPACE时,LOCKMAX必须为0
-612 42711 在同一个表、索引或试图中不允许有重复列名
-613 54008 主健或UNIQUE约束太长或者包含了太多的列
-614 54008 已经超过了索引的内部健长度的最大长度(255)限制
-615 55006 不能删除这个程序包,因为该程序包目前正在执行
-616 42893 指定的对象不能被删除,因为其他对象依赖于该对象
-617 56089 对于DB2版本6,1型索引无效。对于以前的版本,1型索引不能用LOCKSIZE ROW或LARGE表空间定义
-618 42832 对DB2 CATALOG表的请求操作时不允许的
-619 55011 DSNDB07不能修改,除非他先被停止了
-620 53001 对在DSNDB07中的表空间不允许指定该关键词
-621 58001 遇到了重复的DBID,遇到了系统问题
-622 56031 不能指定FOR MIXED DATA因为没有安装混合数据选项
-623 55012 不能为单一的表定义多个族索引
-624 42889 不能为单一的表定义多个主健
-625 55014 用主健定义的表要求唯一索引
-626 55015 不能发布ALTER语句来改变PRIQTY SECQTY或ERASE,除非先停止了表空间
-627 55016 不能发布ALTER语句来改变PRIQTY SECQTY或ERASE,除非先把表空间定义为使用存储器组的表空间
-628 42613 指定语句时相互排斥的(例如,不能分区一个分段的表空间)
-629 42834 因为该外健不能包含空值,所以SET NULL无效
-630 56089 不能为1型索引指定WHERE NOT NULL
-631 54008 无效的外健;要么是比254个字节长,要么包含的列数多于40
-632 42915 指定的删除规则禁止把这个表定义为已制定表的从属表
-633 42915 无效删除规则;必须使用特定的强制删除规则
-634 42915 在这种情况下,DELETE CASCADE不允许
-635 42915 删除规则不能有差异或者不能为SET NULL
-636 56016 在分区索引健的升序或降序规范中,分区所以必须与该规范一致
-637 42614 遇到重复的关键词
-638 42601 在CREATE TABLE语句中缺少列定义
-639 56027 带有SET NULL的删除规则的外健的可空列不能是分区索引的列
-640 56089 不能为这个表空间指定LOCKSIZE ROW,因为在该表空间中的表上定义了1型索引
-642 54021 唯一约束包含太多的列
-643 54024 检查约束超出了3800个字符的最大长度
-644 42615 在SQL语句中为关键词指定的值无效
-646 55017 在指定的分区表空间或者缺省表空间中不能创建表,因为指定的表空间已经包含了一个表
-647 57003 指定的缓冲池无效,因为他没有被激活
-650 56090 ALTER INDEX不能被执行;提供了原因代码
-651 54025 如果CREARE或ALTER TABLE被允许,表对象的描述词(object descriptor,OBD)将超过最大值(32KB)
-652 23506 遇到了EDITRPROC或VALIDPROC冲突
-653 57004 在分区表空间中的表不可用,因为分区索引尚未被创建
-655 56036 在卷的列表中,STOGROUP不能指定为特定的或不特定(“*”)的卷
-658 42917 当试图删除指定的对象时,无法删除该对象,该对象的删除必须通过删除与之相关联的对象完成
-660 53035 不正确的分区索引规范,必须为族索引定义有限制的关键字
-661 53036 分区索引没有指定恰当的分区数目
-662 53037 试图在未分区的表空间(分段的或简单的)上建立分区索引
-663 53038 为分区索引指定的关键字限制值是一个无效数字
-665 53039 为ALTER TABLESOACE语句指定了无效的PART语句
-666 57005 SQL语句不能被处理,因为指定的函数当前正处于进行过程中
-667 42917 不能明确的删除分区表空间的族索引,必须除去分区表空间来去掉分区索引
-668 56018 不能向用EDITPROC定义的表中添加列
-669 42917 不能显式的删除分区表空间中的表,必须删除分区表空间来删除表
-670 54010 表的记录长度超过了页面的大小
-671 53040 不能更改指定的表空间的缓冲池,因为这将改变表空间的页面大小
-672 55035 在命名的表上不允许DROP
-676 53041 只有4KB的缓冲池可被用于一个索引
-677 57011 缓冲池扩展失败,由于可用的虚拟内存的大小不足
-678 53045 为才分区索引中指定的限制健提供的值与数据类型不符
-679 57006 不能创建某一个特定对象,因为该对象的一个drop目前正在挂起
-680 54011 对DB2表不能超过750列
-681 23507 列违反了指定的FIELDPROC
-682 57010 不能载入FIELDPROC
-683 42842 列、单值类型、函数或者过程无效,因为不兼容语句。例如,指定的INTEGER具有FORBITDATA选项
-684 54012 指定的文字列表不能超过254个字节
-685 58002 FIELDPROC返回一个无效的域描述
-686 53043 用FIELDPROC定义的一个列不能与一个使用不同的FIELDPROC定义的列作比较
-687 53044 列不能与一个非兼容字段类型的列比较
-688 58002 返回不正确的数据
-689 54011 从属表定义了太多的列
-690 23508 数据定义的控制支持拒绝这个语句
-691 57018 命名的注册表不存在
-692 57018 命名的索引不存在,但命名的注册表需要该索引
-693 55003 命名的注册表/索引的命名列无效
-694 57023 DROP正在命名的注册表上挂起
-696 42898 由于相关的名字或者转换表的名字使用不正确,指定的触发器无效
-697 42899 FOR EACH语句被指定,因此与OLD合NEW相关的名字是不允许的,或者不能为一个BEFORE触发器指定OLD_TABLE和NEW_TABLE
-713 42815 指定的专用寄存器是无效的
-715 56064 命名的程序不能被运行,因为他依赖与你所安装的DB2版本的部件,但是你的数据中心没有安装这个部件
-716 56065 命名的程序使用这个版本的不正确的发行版本做了预编译
-717 56066 BIND失败,因为他依赖与你所安装的DB2版本的部件,但是你的数据中心没有安装这个部件
-718 56067 REBIND失败,因为IBMREQD列无效
-719 42710 不能BIND ADD一个已经存在的程序包
-720 42710 不能BIND REPLACE一个已经存在的程序包版本
-721 42710 程序包的一致性记号必须是独一无二的
-722 42704 绑定错误,因为指定的程序包不存在
-723 09000 一个触发的SQL语句接受到一个错误
-724 54038 达到了(16)级联间接的SQL语句的最大项目
-725 42721 对专门指定的寄存器提供了一个无效值
-726 55030 因为SYSPKSYSTEM条目,不能绑定这个程序包
-728 56080 指定的数据类型不能与私有协议发布一起使用
-729 429B1 用COMMIT ON RETURN定义的存储过程不能用作嵌套的CALL过程的目标
-730 56053 在只读的共享数据库中为表定义的参照完整性无效
-731 56054 VSAM数据集必须用SHAREOPTION(1.3)定义
-732 56055 被定义为只读型数据库却拥有没有定义空间或者索引空间的DB2子系统
-733 56056 只读共享数据库的定义不一致
-734 56057 一旦一个数据库被定义为ROSHARE READ,他将不能被更改为其他不同的ROSHARE状态
-735 55004 用DBID名称标识的数据库不再是一个只读共享数据库
-736 53014 命名的DBID无效
-737 53056 在这种状况下,不能建立一个隐含的表空间
-739 56088 因为同时指定了ALLOW PARALLEL和MODIELES SQL DATA这两个语句,因此已设定的函数将不能再被更改
-740 51034 在这种方式下不能用MODIELES SQL DATA定义指定的函数
-741 55030 已经为命名的共享组成员的数据定义了工作文件数据库
-742 53004 DSNDB07是隐含的工作文件数据库
-746 57053 在特定的触发器、存储过程或函数中的SQL语句违反嵌套SQL限制
-747 57054 指定的表是不可用的除非为LOB数据列建立起必须的辅助表
-748 54042 在指定的辅助表上已经有一个索引
-750 42986 不能对已指定的表重新命名,因为他至少在一个现存的视图或触发器中被引用
-751 42987 存储过程或用户自定义的函数试图执行一个不允许执行的SQL语句。DB2的线程被置于MUST_ROLLBACK状态
-752 0A001 无效CONNECT语句
-763 560A1 无效的表空间名
-764 560A2 LOB表空间必须与其相关的基表空间同在一个数据库中
-765 560A3 表和数据库不兼容
-766 560A4 不能对辅助表进行请求的操作
-767 42626 CREATE INDEX失败,因为在辅助表中为索引指定了列,或者因为没有为非辅助表的索引指定列
-768 560A50 不能为指定的列或者指定的分区建立辅助表,因为其辅助表已经存在
-769 53096 CREATE AUX TABLE的规格与基表不匹配
-770 530A6 指定的表必须有一个ROWID列,那么该表才可以包含一个LOB列
-771 428C7 无效的ROWID列规范
-797 42987 CREATE TRIGGER包含不被支持的语法
-798 428C9 不能把一个值插入到用GENERATED ALWAYS定义的ROWID列
-802 22012 某一特定操作发生了异常错误。被零除
22003 某一特定操作发生了异常错误。但不是被零除
-803 23505 不能插入行,因为这将违反唯一索引的约束
-804 07002 SQLDA的调用参数列表有误
-805 51002 在计划中没有发现DBRM或程序包名
-807 23509 对已指定的环境和连接,该程序包不可用
-808 08001 CONECT语句与程序中的第一个CONNECT语句不一致
-811 21000 当多行作为一内嵌的选择语句的返回结果是,必须使用游标
-812 22508 在CURRENT PACKAGESET中的ID集合是空白的,语句不能被执行
-815 42920 在一个内置选择语句或者一个基本谓词的子查询中,显式的或隐含的指定了GROUP BY或HAVING语句
-817 25000 执行SQL语句将可能导致禁止更新用户数据或DB2编目
-818 5103 计划<->载入组件的时间戳不匹配,在执行计划中没有从同一个预编译中建立DBRM,该预编译是作为组件载入的
-819 58004 视图不能重建,因为在DB2编目中存储的分析树长度为0
-820 58004 在这个DB2版本的DB2编目中遇到了无效值
-822 51004 在SQLDA中遇到了无效地址
-840 54004 在选择列表或插入列表中返回的项目太多
-842 08002 到指定位置的连接已经存在
-843 08003 SET CONNECTION或RELEASE语句无法执行,因为连接不存在
-870 58026 宿主变量描述符的个数不等于语句中宿主变量的个数
-872 51302 这个子系统已指定了有效的CCSID
-873 53090 同一SQL语句中,不能同时引用EBCDIC表中的定义的列和ASCII表中定义的列
-874 53901 指定对象的编码方案与其表空间的编码方案不匹配
-875 42988 指定的操作符不能用于ASCII数据
-876 53092 不能为指定的原因创建对象:提供了原因代码
-877 53093 数据库或表空间不允许用ASCII,必须使用EBCDIC
-878 53094 该PLAN——TABLE不能是ASCII,必须使用EBCDIC
-879 53095 指定对象的CREATE或ALTER语句不能将列、单值类型,某个存储过程或用户自定义函数的参数定义为以下类型:MAXED DATA,GRAPHIC,VARGRAPHIC,LONGVARGRAPHIC,因为系统没有为指定的编码方案定义相应的CCSID
-900 08003 应用处理没有连接到应用服务器,语句不能被执行
-901 58004 遇到时断时续的系统错误,该错误不能抑制后继的SQL语句的执行
-902 58005 内部控制块的指针错误,要求重新绑定
-904 57011 指定的资源不可用
-905 57014 超出了资源上限
-906 51005 因为重大错误,SQL语句无法执行
-908 23510 当前资源限制设施的规范或者自动重绑定的系统参数不允许BIND,REBIND,AUTOREBIND
-909 57007 对象已被删除
-910 57007 因为在该对象上挂起DROP,所以不能访问该对象
-911 40001 当前工作单元已被回滚
-913 57033 因为死锁或超时导致不成功执行
-917 42969 绑定程序包已经失败
-918 51021 SQL语句不能被执行,因为连接丢失
-919 56045 需要一个ROLLBACK
-922 42505 连接权限失败。试图从TSO、CICS或IMS访问DB2,同时相应的连接设施处于非活动的状态
-923 57015 因为DB2不可用,所以不能建立连接
-924 58006 遇到了DB2内部的连接错误:提供了原因代码
-925 2D521 SQL的COMMIT语句不能从CICS或IMS/TM发布
-926 2D521 SQL的ROLLBACK语句不能从CICS或IMS/TM发布
-927 51006 当正在连接的环境没有建立时,语言接口被调用。利用DSN命令激发该程序
-929 58002 数据获取退出已经失败(DPROP)
-939 51021 由于远程服务器的未请求的回滚,要求一个回滚
-947 56038 SQL语句失败,因为更新不能被传播(DPROP)
-948 56062 DDF没有启动,分布式操作无效
-950 42705 在SQL语句中指定的位置在SYSIBM.LOCATIONS中没有定义
-965 51021 存储过程非正常终止(在DB2 6之前的版本)
-981 57015 当前不是处于允许SQL的状态时,试图在RRSAF中执行SQL
-991 57015 调用连接不能建立一个到DB2的隐含或开放连接
-2001 53089 为储存过程指定的宿主变量参数的个数不等于预期的参数个数
-20003 560A7 不能为GRECP中的表空间或索引指定GBPCACHE NONE
-20004 560A8 对于WORKFILE对象。8KB或16Kb的缓冲池页面大小无效
-20005 54035 指定的对象类型超出了内部的ID极限
-20006 53097 当没有指定WLM环境时,LOB不能被指定为参数
-20070 53098 不能非LOB列建立一个辅助表
-20071 53099 必须指定WLM环境名
-20072 56052 指定的权限ID不拥有在触发器程序包上执行BIND所需的权限
-20073 42927 不能按照指定的要求更改命名的函数,因为在现存的视图定义中引用了该函数
-20074 42939 不能建立指定的对象,因为“SYS”是一个保留的前缀
-20100 56059 在被触发的SQL语句中有BIND错误,指定了错误的SQLCODE和SQLSTATE
-20101 56059 由于指定的原因代码,该函数失败
-20102 42849 在CREATE或ALTER FUNCTION语句中不能使用指定的选项
-20104 42856 更改一个CCSID失败
-20106 42945 不能改变表空间或数据库的CCSID,因为现存的试图引用
-30000 58008 DRDA分布协议错误;处理可以继续
-30002 57057 使用DRDA的分布式客户把OPEN语句连接到PREPARE,但PREPARE接受到一个SQLCODE为+495的警告
-30020 58009 DRDA分布协议错误;对话被解除
-30021 58010 DRDA分布协议错误;处理不能继续
-30030 58013 违反分布协议:COMMIT不成功,对话被解除(AS)
-30040 57012 因为不能得到资源,执行失败,处理可以继续(AS)
-30041 57013 因为不能得到资源,执行失败,处理不能成功的继续(AS)
-30050 58011 执行不成功,在BIND过程中不能执行语句
-30051 58012 特定的BIND过程不是处于活动状态(远程BIND),从而导致失败
-30052 42932 程序准备的假设错误
-30053 42506 程序包的拥有者遭遇授权失败
-30060 08004 RBD遭遇授权失败
-30061 08004 指定了无效或者没有存在的RDB
-30070 58014 目标子系统不支持这个命令
-30071 58015 目标子系统不支持这个对象
-30072 58016 目标子系统不支持这个参数
-30073 58017 目标子系统不支持这个参数值
-30074 58018 应答信息不被支持
-30080 08001 SNA通信错误
-30081 58019 TCP/IP通信错误
-30082 08001 由于安全冲突、通信失败:提供了原因代码
-30090 25000 指定的操作对远程执行失败
-30104 56095 在绑定选项与绑定值中有错误
-30105 56096 指定的绑定选项不兼容
SQLSTATE 消息
本节列示 SQLSTATE 及其含义。SQLSTATE 是按类代码进行分组的;对于子代码,请参阅相应的表。
表 2. SQLSTATE 类代码 类
代码
含义 要获得子代码,
参阅...
00 完全成功完成 表 3
01 警告 表 4
02 无数据 表 5
07 动态 SQL 错误 表 6
08 连接异常 表 7
09 触发操作异常 表 8
0A 功能部件不受支持 表 9
0D 目标类型规范无效 表 10
0F 无效标记 表 11
0K RESIGNAL 语句无效 表 12
0N SQL/XML 映射错误 表 13
20 找不到 CASE 语句的条件 表 15
21 基数违例 表 16
22 数据异常 表 17
23 约束违例 表 18
24 无效的游标状态 表 19
25 无效的事务状态 表 20
26 无效 SQL 语句标识 表 21
28 无效权限规范 表 23
2D 无效事务终止 表 24
2E 无效连接名称 表 25
34 无效的游标名称 表 26
36 游标灵敏度异常 表 27
38 外部函数异常 表 28
39 外部函数调用异常 表 29
3B SAVEPOINT 无效 表 30
40 事务回滚 表 31
42 语法错误或访问规则违例 表 32
44 WITH CHECK OPTION 违例 表 33
46 Java DDL 表 34
51 无效应用程序状态 表 35
53 无效操作数或不一致的规范 表 36
54 超出 SQL 限制,或超出产品限制 表 37
55 对象不处于先决条件状态 表 38
56 其他 SQL 或产品错误 表 39
57 资源不可用或操作员干预 表 40
58 系统错误 表 41
5U 实用程序 表 42
类代码 00 完全成功完成
表 3. 类代码 00:完全成功完成 SQLSTATE 值
含义
00000 操作执行成功,并且未产生任何类型的警告或异常情况。
类代码 01 警告
表 4. 类代码 01:警告 SQLSTATE 值
含义
01002 发生 DISCONNECT 错误。
01003 从列函数的参数消去 NULL 值。
01004 字符串值在指定给具有较短长度的另一字符串数据类型时被截断。
01005 SQLDA 中的条目数不够。
01007 未授予特权。
0100C 从过程返回了一个或多个特殊结果集。
0100D 关闭的游标已在链中的下一个结果集上重新打开。
0100E 生成的过程大于允许的最大结果集数目。只有第一个整数结果集已经返回到调用者。
01503 结果列数比提供的主机变量数大。
01504 UPDATE 或 DELETE 语句不包括 WHERE 子句。
01506 对 DATE 或 TIMESTAMP 值进行了调整,以更正算术运算得出的无效日期。
01509 由于用户虚拟机中的存储器不够,取消游标的分块。
01515 已为主机变量指定了一个空值,因为列的非空值不在主机变量的范围之内。
01516 已忽略不可用的 WITH GRANT OPTION。
01517 用替代字符替换不能转换的字符。
01519 已为主机变量指定了一个空值,因为数字值超出范围。
01524 列函数的结果不包括由算术表达式求值得出的空值。
01526 隔离级别已升级。
01527 SET 语句引用的专用寄存器在 AS 上不存在。
01539 连接成功但只应使用 SBCS 字符。
01543 已忽略重复约束。
01545 未限定列名已解释为相关引用。
01550 索引未创建,因为具有指定描述的索引已经存在。
01560 忽略了一个冗余的 GRANT。
01562 在数据库配置文件中的新日志路径(newlogpth)无效。
01563 日志文件的当前路径(logpath)无效。日志文件路径被复位为缺省值。
01564 已为主机变量指定了空值,因为发生了被零除的错误。
01586 该语句导致一个或多个表自动置于设置完整性暂挂状态。
01589 语句包含有冗余规范。
01592 在引用 SOURCE 函数的 CREATE FUNCTION 语句中,或:
输入参数的长度、精度或小数位大于源函数相应参数的长度、精度或小数位;或
RETURNS 或 CAST FROM 参数的长度、精度或小数位比源函数的小;或
CREATE FUNCTION 语句中的 CAST FROM 参数的长度、精度或小数位比 RETURNS 参数的大。
运行时可能发生截断(那时可能会引起错误)。
01594 对于所有信息,SQLDA 内的条目数不够多(即,没有足够的描述符返回相异名称)。
01595 该视图已替换现有无效视图。
01596 没有为基于长字符串数据类型的单值类型创建比较函数。
01598 尝试激活活动的事件监视器,或尝试释放不活动的事件监视器。
01599 忽略 REBIND 上的绑定选项。
01602 优化级别已降低。
01603 CHECK DATA 处理过程中发现约束违例,已将其移至异常表。
01604 已经说明了 SQL 语句,但是未执行它。
01605 递归公共表表达式可能包含无限循环。
01606 节点或系统数据库目录是空的。
01607 只读事务中节点的时间差超过定义的阈值。
01608 已经替换了不受支持的值。
01609 生成的过程大于允许的最大结果集数目。只有第一个整数结果集已经返回到调用者。
01610 从过程返回了一个或多个特殊结果集。
01611 关闭的游标已在链中的下一个结果集上重新打开。
01614 定位器数小于结果集数。
01616 估计的 CPU 成本超出了资源限制。
01618 重新分发节点组是更改数据库分区所必需的。
01620 UNION ALL 的某些基本表可能是同一个表。
01621 检索到的 LOB 值可能已更改。
01622 语句成功完成,但在语句完成之后发生了系统错误。
01623 忽略 DEGREE 的值。
01625 模式名在 CURRENT PATH 中出现了多次。
01626 数据库只有一个活动的缓冲池。
01627 DATALINK 值可能无效,因为该表处理协调暂挂或协调不可能的状态。
01632 并发连接数超出了该产品的定义授权。
01633 可能不能使用具体化查询表来优化查询的处理。
01636 数据库管理器一直未验证非增量数据的完整性。
01637 未启用调试。
01639 联合对象可能需要调用程序具有对数据源对象的必要特权。
01641 Datalink 类型属性限制结构化类型的使用。
01642 对于最大的可能 USER 缺省值,列不足够长。
01643 对 SQL 例程中 SQLSTATE 或 SQLCODE 变量的赋值可能会被覆盖,不会激活任何处理程序。
01645 SQL 过程的可执行文件未保存在数据库目录中。
01648 忽略了 COMPRESS 列属性,因为对表取消激活了 VALUE COMPRESSION。
01649 缓冲池操作已经完成,但是直到下一次数据库重新启动才会生效。
01650 索引和表统计信息不一致。
01651 成功激活了事件监视器,但是某些监视信息可能丢失了。
01652 由于语句上下文而忽略了隔离子句。
01653 权限授予给 USER。因为权限名称大于 8 字节,所以不考虑组。
01654 未启动缓冲池。
01655 成功创建了事件监视器,但是至少有一个事件监视器目标表已存在。
01657 缓冲池操作在下一次数据库重新启动之后才会生效。
01665 列名或参数名被截断。
01667 可能不能使用视图来优化查询的处理。
01669 由于远程目录与本地目录之间的模式不一致,因此,未彻底更新指定昵称的统计信息。
01670 对新表来说,不存在缺省主表空间。
01671 高速缓存的语句的环境与当前环境不同。将使用当前环境来重新优化指定的语句。
01674 表空间属性对于查询性能不是最佳的。
01675 指定的表空间数超过了需要的表空间数。多余的表空间将被忽略。
01676 忽略了传送操作,因为授权标识已经是数据库对象的所有者。
01677 对于已经定义了插件的服务器忽略了包装器选项。
01678 对用户映射的更改只应用于联合目录表,而不应用于外部用户映射存储库。
01679 无法为指定的授权标识建立可信连接。
01684 不支持指定的语言环境。返回的消息使用的是英语语言环境。
01686 表空间正在从 REGULAR 转换为 LARGE。必须对此表空间中的表的索引进行重组或重建,以便支持大型 RID。
01689 在未连接到数据源的情况下完成了 SQL 编译。
0168A 在数据源上找不到源过程的程序包主体,或者它无效。
01H51 “MQSeries 应用程序消息传递接口”消息被截断。
01H52 例程的执行已完成,但是执行期间至少遇到了一个错误或警告。提供了更多信息。
01H53 例程遇到了警告。参阅 SQLCODE 以获取详细信息。
01HXX 由用户定义的函数或外部过程 CALL 返回了有效警告 SQLSTAE。
类代码 02 无数据
表 5. 类代码 02:无数据 SQLSTATE 值
含义
02000 发生下述异常之一:
SELECT INTO 语句或 INSERT 语句的子查询的结果为空表。
在搜索的 UPDATE 或 DELETE 语句内标识的行数为零。
在 FETCH 语句中引用的游标位置处于结果表最后一行之后。
02501 游标位置对于当前行的 FETCH 无效。
02502 检测到删除或更新孔
02506 遇到了错误,并且已按 RETURN DATA UNTIL 子句指定那样容许它。
类代码 07 动态 SQL 错误
表 6. 类代码 07:动态 SQL 错误 SQLSTATE 值
含义
07001 对于参数标记的数目来说,主机变量的数目不正确。
07002 调用参数列表或控制块无效。
07003 在 EXECUTE 语句内标识的语句是一条 select 语句,或未处于已预编译状态。
07004 动态参数需要 USING 子句或 INTO 子句。
07005 游标的语句名标识的是一个不能与游标关联的已预编译语句。
07006 由于其数据类型的缘故不能使用某输入主机变量。
类代码 08 连接异常
表 7. 类代码 08:连接异常 SQLSTATE 值
含义
08001 应用程序请求器不能建立连接。
08002 连接已存在。
08003 连接不存在。
08004 应用程序服务器拒绝了建立连接。
08007 事务解析未知。
08502 用 TWOPHASE 的 SYNCPOINT 运行的应用程序进程发出的 CONNECT 语句无效,因为无事务管理器可用。
08504 当处理指定的路径重命名配置文件时遇到错误。
类代码 09 触发操作异常
表 8. 类代码 09:触发操作异常 SQLSTATE 值
含义
09000 触发 SQL 语句失败。
类代码 0A 不支持功能部件
表 9. 类代码 0A:不支持功能部件 SQLSTATE 值
含义
0A001 CONNECT 语句无效,因为进程不处于可连接状态。
0A502 未对此数据库实例启用操作。
0A503 由于潜在的数据不一致,不能编译联合插入、更新或删除操作。
类代码 0D 目标类型规范无效
表 10. 类代码 0D:目标类型规范无效 SQLSTATE 值
含义
0D000 目标结构化数据类型规范是源结构化数据类型的正确子类型。
类代码 0F 无效标记
表 11. 类代码 OF:无效标记 SQLSTATE 值
含义
0F001 LOB 标记变量当前不表示任何值。
类代码 0K RESIGNAL 语句无效
表 12. 类代码 0K:RESIGNAL 语句无效 SQLSTATE 值
含义
0K000 RESIGNAL 语句不在处理程序中。
类代码 0N SQL/XML 映射错误
表 13. 类代码 0N:SQL/XML 映射错误 SQLSTATE 值
含义
0N002 无法将字符映射至有效 XML 字符。
类代码 10 XQuery 错误
表 14. 类代码 10:XQuery 错误 SQLSTATE 值
含义
10000 XQuery 错误。
10501 XQuery 表达式缺少静态或动态上下文组件的指定。
10502 在 XQuery 表达式的序言中遇到了错误。
10503 在 XQuery 或 XPath 表达式中定义了重复的名称。
10504 在无效 URI 中指定了 XQuery 名称空间声明。
10505 字符、标记或子句在 XQuery 表达式中缺少了或者无效。
10506 XQuery 表达式引用了一个未定义的名称。
10507 处理 XPath 或 XQuery 表达式时遇到了类型错误。
10508 XQuery 表达式在已计算的构造函数中包括一个无效的名称表达式。
10509 指定了不受支持的 XQuery 语言功能部件。
10510 未指定字符串文字作为强制类型转换表达式操作数或构造函数参数。
10601 在处理 XQuery 函数或运算符时遇到了算术错误。
10602 在处理 XQuery 函数或运算符时遇到了数据类型转换错误。
10603 在处理 XQuery 函数或运算符时遇到了字符处理错误。
10604 未提供文档上下文来处理 XQuery 函数。
10605 在处理 XQuery 函数或运算符时遇到了日期时间错误。
10606 没有上下文项用来处理 XQuery 函数或运算符。
10607 在处理 XQuery 函数或运算符时遇到了名称空间错误。
10608 在 XQuery 函数或运算符的参数中遇到了错误。
10609 在处理 XQuery 函数或运算符时遇到了正则表达式错误。
10610 在处理 XQuery 函数或运算符时遇到了类型错误。
10611 在处理 XQuery 函数或运算符时遇到了未标识的错误。
10901 XQuery 原子值超出了 DB2 XQuery 数据类型的范围。
10902 XQuery 原子值超过了 DB2 XQuery 运算符或函数的长度限制。
10903 已超过相匹配的 XQuery 节点数的内部限制。
类代码 20 找不到 CASE 语句的条件
表 15. 类代码 20:找不到 Case 语句的条件 SQLSTATE 值
含义
20000 找不到 CASE 语句的条件。
类代码 21 基数违例
表 16. 类代码 21:基数违例 SQLSTATE 值
含义
21000 SELECT INTO 的结果是一个多行的结果表,或者,基本谓词的子查询结果为多个值。
21501 对自引用表进行多行 INSERT 是无效的。
21502 主键的多行 UPDATE 是无效的。
21504 从删除规则为 RESTRICT 或 SET NULL 的自引用表进行多行 DELETE 是无效的。
21505 行函数返回的内容不能超过一行。
21506 表的同一行不能是多个更新、删除或插入操作的目标。
类代码 22 数据异常
表 17. 类代码22:数据异常 SQLSTATE 值
含义
22001 字符数据,发生右截断;例如,更新或插入值对于列来说太长(字符串),或者日期时间值由于太小而不能赋给主机变量。
22002 检测到空值或缺少指示符参数;例如,不能将空值赋给主机变量,因为没有指定指示符变量。
22003 数值超出范围。
22004 不能从定义为 PARAMETER STYLE. GENERAL 的过程或者从用非空参数调用的类型保留方法中返回空值。
22007 检测到无效的日期时间格式;即指定了无效的字符串表示法或值。
22008 发生日期时间字段溢出;例如,对日期或时间戳记算术运算的结果不在有效日期范围之内。
2200G 大多数特定类型都不匹配。
2200L XML 值不是具有单个根元素的结构良好的文档。
2200M 未能将值作为结构良好的 XML 文档进行解析或者根据 XML 模式来验证该值。
2200S XML 注释无效。
2200T XML 处理指令无效。
2200W XML 值包含未能序列化的数据。
22011 发生子字符串错误;例如,SUBSTR 的参数超出范围。
22012 用零作除数是无效的。
22018 对于 CAST、DECIMAL、FLOAT、或 INTEGER 标量函数,字符值是无效的。
22019 LIKE 谓词有无效转义字符。
22021 某字符不在编码字符集中。
22024 以 NUL 结束的输入主机变量或参数不包含 NUL。
22025 LIKE 谓词字符串模式包含无效的转义字符。
2202D 配合 mutator 方法使用了空实例。
2202H 在 TABLESAMPLE 子句中指定的样本大小无效。
22501 变长字符串的长度控制字段为负值或大于最大值。
22504 混合数据值是无效的。
22506 对日期时间专用寄存器的引用无效,因为 TOD 时钟发生故障或操作系统时区参数超出范围。
22522 CCSID 值根本无效,对数据类型或子类型无效,或对编码方案无效。
22525 数据分区键值无效。
22526 键变换函数没有生成任何行或生成了重复的行。
22527 对多行 INSERT 操作检测到了无效的输入数据。
22532 在 XML 模式存储库中未找到 XSROBJECT。
22533 在 XML 模式存储库中未找到唯一的 XSROBJECT。
22534 XML 模式文档未通过使用包括或重新定义而连接至其他 XML 模式文档。
22535 XML 模式未声明指定的全局元素。
22536 XML 值不包含必需的根元素。
225D1 未启用指定的 XML 模式以进行分解。
225D2 在分解 XML 文档期间发生了 SQL 错误。
225D3 分解 XML 文档时遇到了对于 XML 模式类型无效的值。
225D4 分解 XML 文档时遇到了对于目标 SQL 类型无效的值。
225D5 分解 XML 文档时遇到了上下文中未知或无效的 XML 节点。
225D6 指定的 XML 模式需要迁移到当前版本以支持分解。
225D7 分解 XML 文档时遇到了一个根元素,该根元素不是 XML 模式中的复杂类型的全局元素。
225DE 无法启用 XML 模式以进行分解。
类代码 23 约束违例
表 18. 类代码 23:约束违例 SQLSTATE 值
含义
23001 RESTRICT 更新或删除规则防止父键被更新或删除。
23502 插入或更新值为空,但该列不能包含空值。
23503 外键的插入或更新值无效。
23504 NO ACTION 更新或删除规则防止父键被更新或删除。
23505 发生由唯一索引或唯一约束强加的约束违例。
23510 使用由 RLST 表强加的命令时发生约束违例。
23511 不能删除父行,因为检查约束限制该删除。
23512 不能添加检查约束,因为该表含有不满足约束定义的行。
23513 INSERT 或 UPDATE 的结果行不符合检查约束定义。
23514 检查数据处理中发现约束违例。
23515 未能创建唯一索引,或者不能添加唯一约束,因为该表包含指定键的重复值。
23520 不能定义外键,因为其所有的值都不同于父表的父键。
23521 对目录表的更新违反了内部约束。
23522 标识列值的范围或者序列用完。
23523 已经为安全标号列提供了无效值。
23524 UNION ALL 视图内的无效行移动。
23525 未能插入或更新 XML 值,这是因为在插入或更新 XML 列的索引期间检测到错误。
23526 未能创建 XML 列的索引,因为在将 XML 值插入到索引中时检测到错误。
类代码 24 无效的游标状态
表 19. 类代码 24:无效的游标状态 SQLSTATE 值
含义
24501 标识的游标未打开。
24502 在 OPEN 语句中标识的游标已经打开。
24504 在 UPDATE、DELETE、SET 或 GET 语句中标识的游标未定位在行上。
24506 在 PREPARE 中标识的语句是一个打开游标语句。
24510 对一个删除孔或更新孔尝试了
UPDATE 或 DELETE 操作。
24512 结果表与基本表不一致。
24513 不允许 FETCH NEXT、PRIOR、CURRENT 或 RELATIVE,原因是游标位置未知。
24514 先前的错误已禁用此游标。
24516 已对结果集指定了一个游标。
24517 外部函数或方法将游标保持为打开。
类代码 25 无效的事务状态
表 20. 类代码 25:无效的事务状态 SQLSTATE 值
含义
25000 插入、更新或删除操作在指定它的上下文中无效。
25001 该语句只允许作为工作单元的第一条语句。
25501 该语句只允许作为工作单元的第一条语句。
25502 操作在单个事务中不能多次出现。
类代码 26 无效 SQL 语句标识
表 21. 类代码 26:无效 SQL 语句标识 SQLSTATE 值
含义
26501 标识的语句不存在。
类代码 27 触发的数据更改违例
表 22. 类代码 27:触发的数据更改违例 SQLSTATE 值 含义
27000 试图在同一 SQL 语句中多次更改同一个表中的同一行。
类代码 28 无效权限规范
表 23. 类代码 28:无效权限规范 SQLSTATE 值
含义
28000 权限名称无效。
类代码 2D 无效事务终止
表 24. 类代码 2D:无效事务终止 SQLSTATE 值
含义
2D521 SQL COMMIT 或 ROLLBACK 在当前操作环境中无效。
2D522 ATOMIC 复合语句中不允许 COMMIT 和 ROLLBACK。
2D528 动态 COMMIT 对于应用程序执行环境无效。
2D529 动态 ROLLBACK 对于应用程序执行环境无效。
类代码 2E 无效连接名称
表 25. 类代码 2E:无效连接名称 SQLSTATE 值
含义
2E000 连接名称无效。
类代码 34 无效的游标名称
表 26. 类代码 34:无效的游标名称 SQLSTATE 值
含义
34000 游标名无效。
类代码 36 无效游标规范
表 27. 类代码 36:无效游标规范 SQLSTATE 值
含义
36001 不能为指定的 SELECT 语句定义敏感游标。
类代码 38 外部函数异常
表 28. 类代码 38:外部函数异常 SQLSTATE 值
含义
38XXX 外部例程或触发器返回有效错误 SQLSTATE。
38001 不允许外部例程执行 SQL 语句。
38002 例程尝试修改数据,但例程未定义为 MODIFIES SQL DATA。
38003 例程中不允许该语句。
38004 例程尝试读取数据,但例程未定义为 READS SQL DATA。
38501 (使用 SIMPLE CALL 或 SIMPLE CALL WITH NULLS 调用约定)调用用户定义的函数、外部过程或触发器时出错。
38502 不允许外部函数执行 SQL 语句。
38503 用户定义的函数异常终止(abend)。
38504 用户定义的函数已被用户中断,以停止可能的循环条件。
38505 FINAL CALL 上的例程中不允许 SQL 语句。
38506 函数因来自 OLE DB 提供程序的错误而失败。
38552 SYSFUN 模式(由 IBM 提供)中的函数已异常终止。
可以在消息正文中找到下列原因码之一:
01
数值超出范围
02
被零除
03
算术溢出或下溢
04
日期格式无效
05
时间格式无效
06
时间戳记格式无效
07
时间戳记持续时间的字符表示法无效
08
时间间隔类型无效(必须是 1、2、4、8、16、32、64、128、256 之一)
09
字符串太长
10
字符串函数中的长度或位置超出范围
11
浮点数的字符表示法无效
38553 系统模式中的例程已因错误而终止。
38H01 MQSeries 函数未能初始化。
38H02 MQSeries 的“应用程序消息传递接口”未能终止会话。
38H03 MQSeries 的“应用程序消息传递接口”未能正确地处理消息。
38H04 MQSeries 的“应用程序消息传递接口”未能发送消息。
38H05 MQSeries 的“应用程序消息传递接口”未能读取/接收消息。
38H06 MQSeries 的“应用程序消息传递接口”预订(不预订)请求失败。
38H07 MQSeries 的“应用程序消息传递接口”未能落实工作单元。
38H08 MQSeries 的“应用程序消息传递接口”策略错误。
38H09 MQSeries XA(两阶段落实)API 调用错误。
38H0A MQSeries 的“应用程序消息传递接口”未能回滚工作单元。
类代码 39 外部函数调用异常
表 29. 类代码 39:外部函数调用异常 SQLSTATE 值
含义
39001 用户定义的函数已返回无效 SQLSTATE。
39004 不允许 IN 或 INOUT 参数为空值。
39501 与参数相关联的 eye-catcher(引人注目的事物)已被修改。
类代码 3B SAVEPOINT 无效
表 30. 类代码 3B:SAVEPOINT 无效 SQLSTATE 值
含义
3B001 保存点无效。
3B002 已经达到最大保存点数目。
3B501 检测到重复的保存点名。
3B502 指定了 RELEASE 或 ROLLBACK TO SAVEPOINT,但是保存点不存在。
3B503 在触发器或全局事务中不允许 SAVEPOINT、 RELEASE SAVEPOINT 或 ROLLBACK TO SAVEPOINT。
类代码 40 事务回滚
表 31. 类代码 40:事务回滚 SQLSTATE 值
含义
40001 发生了伴随自动回滚的超时或死锁。
40003 语句完整性未知。
40504 由于系统错误导致工作单元被回滚。
40506 由于 SQL 错误,当前事务已回滚。
40507 由于创建索引时发生故障,因此当前事务已回滚。
类代码 42 语法错误或访问规则违例
表 32. 类代码 42:语法错误或访问规则违例 SQLSTATE 值
含义
42501 授权标识不具有对标识对象执行指定操作的特权。
42502 授权标识不具有执行指定操作的特权。
42504 无法从指定的权限名撤销指定的特权、安全标号或免除凭证。
42506 发生所有者授权失败。
42508 不能将指定的数据库特权授予 PUBLIC。
42509 因为 STATICRULES 选项而未授权 SQL 语句。
42511 未能检索 DATALINK 值。
42512 授权标识对受保护列没有访问权。
42514 授权标识不具有对象的所有权需要的特权。
42516 用户映射存储库中的认证失败。
42519 不允许此授权标识对受保护表执行操作。
42520 由于此授权标识没有安全标号,所以无法执行内置函数。
42521 无法将权限或特权授予指定的授权标识。
42522 此授权标识没有凭证,因此无法保护列或者对该列除去保护。
42601 字符、标记或子句无效或丢失。
42602 检测到名称中有无效字符。
42603 检测到未终止的字符串常量。
42604 检测到无效数字或字符串常量。
42605 为标量函数指定的参数的数目无效。
42606 检测到无效十六进制常数。
42607 列函数的操作数无效。
42608 在 VALUES 中使用 NULL 或 DEFAULT 是无效的。
42609 运算符或谓词的所有操作数都是参数标记。
42610 不允许参数标记。
42611 列或参数定义无效。
42612 语句字符串是一条 SQL 语句,它在它所出现的上下文中是不可接受的。
42613 子句互斥。
42614 重复关键字无效。
42615 检测到无效备用项。
42616 指定了无效的选项。
42617 语句字符串是空白或空的。
42618 不允许主机变量。
42620 对 UPDATE 子句指定了只读 SCROLL。
42621 检查约束无效。
42622 名称或标号太长。
42623 不能指定 DEFAULT 子句。
42625 CASE 表达式无效。
42627 必须在使用 EXPRESSION AS 子句的谓词规范之前指定 RETURNS 子句。
42628 在变换定义中多次定义了 TO SQL 或 FROM SQL 变换函数。
42629 必须为 SQL 例程指定参数名。
42630 在嵌套复合语句中不能存在 SQLSTATE 或 SQLCODE 变量声明。
42631 SQL 函数或方法中的 RETURN 语句必须包括返回值。
42633 XMLATTRIBUTES 或 XMLFOREST 的参数需要 AS 子句。
42634 XML 名称无效。
42635 XML 名称空间前缀无效。
42636 缺少 BY REF 子句,或者不正确使用了该子句。
42637 无法在 DECLARE CURSOR 语句中指定 XQuery 表达式。
42701 在插入或更新操作或 SET 转换变量语句中检测到重复列名。
42702 由于名称重复,列引用有歧义。
42703 检测到一个未定义的列、属性或参数名。
42704 检测到未定义的对象或约束名。
42705 检测到未定义的服务器名。
42707 ORDER BY 内的列名不标识结果表中的列。
42709 在键列列表中指定了重复的列名。
42710 检测到重复的对象或约束名。
42711 在对象定义或 ALTER 语句中检测到重复列名或属性名。
42712 在 FROM 子句中检测到重复的表标志符。
42713 在对象列表中检测到重复对象。
42720 在节点目录内未找到远程数据库的节点名。
42723 模式中已经存在带有相同特征符的函数。
42724 不能访问用于用户定义的函数或过程的外部程序。
42725 直接引用了例程(不是通过特征符或者通过特定实例名进行引用),但是该例程有多个特定实例。
42726 检测到指定的派生表的名称重复。
42727 对新表来说,不存在缺省主表空间。
42728 在节点组定义中检测到重复节点。
42729 节点未定义。
42730 容器名已由另一表空间使用。
42731 容器名已由该表空间使用。
42732 在 SET CURRENT PATH 语句中检测到重复的模式名。
42734 检测到重复的参数名、SQL 变量名、游标名、条件名或标号。
42735 对缓冲池,未定义表空间的节点组。
42736 在 LEAVE 语句上指定的标号找不到或无效。
42737 未定义在处理程序中指定的条件。
42738 在 FOR 语句的 DECLARE CURSOR 语句中指定了重复的列名或未命名的列。
42739 检测到重复的变换。
42740 未找到指定类型的变换。未删除任何变换。
42741 未对数据类型定义变换组。
42742 类型表或带类型视图层次结构中已存在同类子表或子视图。
42743 在索引扩展名中未找到搜索方法。
42744 在变换组中未定义 TO SQL 或 FROM SQL 变换函数。
42745 例程将用现有方法定义覆盖关系。
42746 在同一类型层次结构中,方法名不能与结构化类型名相同。
42748 存储路径对于数据库来说已存在或者被指定了多次。
42749 对于 XML 模式来说,已经存在具有相同目标名称空间和模式位置的 XML 模式文档。
4274A 在 XML 模式存储库中未找到 XSROBJECT。
4274B 在 XML 模式存储库中未找到唯一的 XSROBJECT。
4274F 在安全标号组件中未定义组件元素。
4274G 在给定安全标号所使用的安全标号策略中未定义安全标号组件。
4274H 指定的安全策略不存在指定的访问规则。
4274I 指定的安全策略不存在安全标号。
4274J 数据库分区组已被此缓冲池使用。
42802 插入或更新值的数目与列数不相同。
42803 在 SELECT 或 HAVING 子句中的列引用无效,因为它不是分组列;或者在 GROUP BY 子句中的列引用无效。
42804 CASE 表达式中的结果表达式不兼容。
42805 ORDER BY 子句中的整数不标识结果表中的列。
42806 不能将某值赋予某主机变量, 因为数据类型不兼容。
42807 对该对象不允许执行 INSERT、UPDATE 或 DELETE。
42808 插入或更新操作中标识的列不可更新。
42809 标识的对象不是语句所应用的对象类型。
42810 FOREIGN KEY 子句中没有标识基本表。
42811 指定的列数与 SELECT 子句中的列数不相同。
42813 WITH CHECK OPTION 不能用于指定的视图。
42814 无法删除该列,因为它是表中唯一的列。
42815 数据类型、长度、小数位、值或 CCSID 无效。
42816 表达式中的日期时间值或持续时间无效。
42817 由于某个视图或约束依赖于该列,并且指定了 RESTRICT,或者由于该列包含在分区键中,或者由于该列是安全标号列,所以无法删除该列。
42818 运算符或函数的操作数不兼容或者不可比较。
42819 算术运算的操作数或需要数字的函数的操作数不是数字。
42820 数字常数太长,或其值不在该数据类型取值范围内。
42821 更新或插入值与列不兼容。
42823 从仅允许一列的子查询中返回了多列。
42824 LIKE 的操作数不是字符串,或第一个操作数不是列。
42825 UNION、INTERSECT、EXCEPT 或 VALUES 的行没有兼容列。
42826 UNION、INTERSECT、EXCEPT 或 VALUES 的行的列数不相同。
42827 UPDATE 或 DELETE 中标识的表与游标指定的表不相同。
42828 由 UPDATE 或 DELETE 语句的游标指定的表不能修改,或该游标是只读游标。
42829 FOR UPDATE OF 无效,因为由该游标指定的结果表不能修改。
42830 外键不符合父键的描述。
42831 主键或唯一键列不允许空值。
42832 不允许对系统对象执行该操作。
42834 不能指定 SET NULL,因为不能对外键的任何列指定空值。
42835 在指定的派生表之间不能指定循环引用。
42836 指定的递归派生表的规范无效。
42837 不能改变该列,原因是它的属性与当前的列属性不兼容。
42838 检测到无效使用了表空间。
42839 索引和长列不能处于与该表独立的表空间内。
42840 检测到无效使用了 AS CAST 选项。
42841 参数标记不能是用户定义的类型或引用类型。
42842 列定义无效,因为指定的选项与列描述不一致。
42845 检测到无效使用了 VARIANT 或 EXTERNAL ACTION 函数。
42846 不支持从源类型到目标类型的强制类型转换。
42849 外部例程不支持所指定的选项。
42852 在 GRANT 或 REVOKE 中指定的特权无效或不一致。(例如,视图上的 GRANT ALTER。)
42853 指定了选项的两个备用项,或者同一选项被指定了多次。
42854 选择列表中的结果列数据类型与在带类型视图或具体化查询表定义中定义的类型不兼容。
42855 不允许对此主机变量指定 LOB。此游标的 LOB 值的所有访存的目标主机变量必须是定位器或 LOB 变量。
42858 不能将该操作应用于指定对象。
42863 检测到 REXX 中有未定义的主机变量。
42866 在 CREATE FUNCTION 语句的 CAST FROM 子句中的 RETURNS 子句的数据类型对于有源函数或函数体中的 RETURN 语句返回的数据类型不适合。
42867 指定了冲突的选项。
42872 FETCH 语句子句与游标定义不兼容。
42875 要在 CREATE SCHEMA 中创建的对象的限定符必须与模式名相同。
42877 不能限定该列名。
42878 无效的函数或过程名称与 EXTERNAL 关键字一起使用。
42879 在 CREATE FUNCTION 语句中一个或多个输入参数的数据类型对于源函数中相应的数据类型不适合。
42880 CAST TO 和 CAST FROM 数据类型不兼容,或总会导致固定字符串截断。
42881 使用基于行的函数无效。
42882 特定实例名限定符与函数名限定符不相同。
42883 找不到具有匹配特征符的例程。
42884 找不到具有指定名称和兼容参数的任何例程。
42885 在 CREATE FUNCTION 语句中指定的输入参数数目与 SOURCE 子句中指定的函数所提供的参数数目不匹配。
42886 IN、OUT 或 INOUT 参数属性不匹配。
42887 在该函数出现的上下文中该函数无效。
42888 表没有主键。
42889 该表已有主键。
42890 在引用子句中指定了列表,但是标识的父表没有指定列名的唯一约束。
42891 重复的 UNIQUE 约束已存在。
42893 无法删除、改变或传输该对象或约束,或者无法从对象中撤销权限,因为还有其他对象依赖于该对象。
42894 DEFAULT 值无效。
42895 对于静态 SQL,不能使用输入主机变量,因为其数据类型与过程或用户定义的函数的参数不兼容。
428A0 用户定义的函数所基于的有源函数出错。
428A1 不能访问主机文件变量所引用的文件。
428A2 表不能指定给多节点节点组,因为它没有分区键。
428A3 为事件监视器指定了无效路径。
428A4 为事件监视器选项指定了无效值。
428A5 在 SET INTEGRITY 语句中指定的异常表结构不正确,或者已用生成的列、约束或触发器定义了该异常表。
428A6 在 SET INTEGRITY 语句中指定的异常表不能与正在检查的表之一相同。
428A7 检查的表数目与在 SET INTEGRITY 语句中指定的异常表数目不匹配。
428A8 在父表或底层的表处于设置完整性暂挂状态时,不能对派生表使用 SET INTEGRITY 语句复位设置完整性暂挂状态。
428A9 节点范围无效。
428AA 列名不是事件监视器表的有效列。
428B0 在 ROLLUP、CUBE 或 GROUPING SETS 中有非法嵌套。
428B1 未指定给特定节点的表空间容器的规范数目不正确。
428B2 容器的路径名无效。
428B3 指定了无效的 SQLSTATE。
428B7 在 SQL 语句中指定的编号不在有效范围内。
428BO 不能为联合数据源创建方案。
428C0 不能删除该节点,因为它是节点组中唯一的节点。
428C1 只能为表指定一个 ROWID、IDENTITY 或安全标号列。
428C2 检查函数体指出应已在 CREATE FUNCTION 语句中指定给出的子句。
428C4 谓词运算符两边的元素的数目不相同。
428C5 从数据源中找不到数据类型的数据类型映射。
428C9 不能将 ROWID 列指定为 INSERT 或 UPDATE 的目标列。
428CA 处于追加方式的表不能具有集群索引。
428CB 表空间的页大小必须与相关联的缓冲池的页大小相匹配。
428D1 不能访问 DATALINK 值所引用的文件。
428D4 在 OPEN、CLOSE 或 FETCH 语句中不能引用在 FOR 语句中指定的游标。
428D5 结束标号与开始标号不匹配。
428D6 NOT ATOMIC 语句不允许 UNDO。
428D7 不允许条件值。
428D8 SQLSTATE 或 SQLCODE 变量的声明或使用无效。
428DB 作为超类型、超表或超视图,该对象无效。
428DC 对于此类型的变换,该函数或方法无效。
428DD 未定义要求的变换。
428DE PAGESIZE 值不受支持。
428DF 在 CREATE CAST 中指定的数据类型无效。
428DG 在 CREATE CAST 中指定的函数无效。
428DH 操作对于类型表无效。
428DJ 不能更改或删除继承列或属性。
428DK 已定义引用列的作用域。
428DL 外部函数或有源函数的参数已定义了作用域。
428DM 作用域表或视图对于引用类
型无效。
428DN 未在外部函数的 RETURNS 子句中指定 SCOPE,或在有源函数的 RETURN 子句中指定了 SCOPE。
428DP 该类型不是结构化类型。
428DQ 子表或子视图的模式名不能与其上一级表或上一级视图的模式名不同。
428DR 无法将操作应用于子表或子视图。
428DS 不能在子表中定义指定列的索引。
428DT 表达式的操作数不是有效的作用域引用类型。
428DU 要求的类型层次结构中不包括的一种类型。
428DV 解析引用运算符的左操作数无效。
428DW 不能使用解析引用运算符来引用对象标识列。
428DX 对象标识列是定义一个类型表或带类型视图层次结构的根表或根视图所必需的。
428DY 不能对目标对象类型更新统计信息。
428DZ 不能更新对象标识列。
428E0 索引的定义与索引扩展名的定义不匹配。
428E1 用于产生范围的表函数的结果与索引扩展名的键变换表函数的结果不一致。
428E2 目标键参数的数目或类型与索引扩展名的键变换函数的数目或类型不匹配。
428E3 索引扩展名中函数的参数无效。
428E4 函数在 CREATE INDEX EXTENSION 语句中不受支持。
428E5 只能用用户定义的谓词来指定 SELECTIVITY 子句。
428E6 用户定义的谓词中的方法的搜索参数与索引扩展名的相应搜索方法的搜索参数不匹配。
428E7 用户定义的谓词中跟在比较运算符后的操作数类型与 RETURNS 数据类型不匹配。
428E8 搜索目标或搜索参数参数与正在创建的该函数的参数名不匹配。
428E9 在相同的使用规则中参数的参数名不能同时作为搜索目标和搜索参数。
428EA 带类型视图中的全查询无效。
428EB 当上一级视图中的某一列为可更新时,子视图中相应的列不能是只读的。
428EC 为具体化查询表指定的全查询无效。
428ED 不能构造具有 Datalink 或 Reference 类型属性的结构化类型。
428EE 选项对此数据源无效。
428EF 该选项的值对此数据源无效。
428EG 丢失此数据源所必需的选项。
428EH 不能 ADD 已定义的选项。
428EJ 不能 SET 或 DROP 尚未添加的选项。
428EK 已声明的全局临时表名的限定符必须是 SESSION。
428EL 变换函数不能与函数或方法一起使用。
428EM TRANSFORM. GROUP 子句是必需的。
428EN 变换组被指定为未使用。
428EP 结构化类型不能直接或间接依赖于它本身。
428EQ 例程的返回类型与主题类型不同。
428ER 在删除方法主体之前,不能删除方法规范。
428ES 方法主体与方法规范的语言类型不对应。
428EU 在服务器定义中未指定 TYPE 或 VERSION。
428EV 对于该数据源类型,传递(Pass-Through)功能不受支持。
428EW 表不能与具体化查询表互相转换。
428EX 例程不能用作变换函数,因为它是内置函数或方法。
428EY 用户定义的谓词中搜索目标的数据类型与指定索引扩展名的源键的数据类型不匹配。
428EZ OLAP 函数的窗口规范无效。
428F0 ROW 函数必须包括至少两列。
428F1 SQL TABLE 函数必须返回表结果。
428F2 SQL 过程中的 RETURN 语句值的数据类型必须是 INTEGER。
428F3 SCROLL 与 WITH RETURN 是互斥的。
428F4 在 FETCH 上指定的 SENSITIVITY 不允许用于游标。
428F6 游标是可滚动的,但结果表涉及来自表函数的输出。
428F7 尝试对外部例程进行的操作仅应用于 SQL 例程。
428F9 在此上下文中不能指定序列表达式。
428FA 十进制数的小数位必须为零。
428FB 序列名不能是由系统为标识列生成的序列。
428FC 加密密码的长度无效。
428FD 用于解密的密码与加密数据时所使用的密码不匹配。
428FE 数据不是 ENCRYPT 函数的结果。
428FF 缓冲池规范无效。
428FG 登台表或具体化查询表定义无效。
428FH SET INTEGRITY 选项无效
428FI 指定了 ORDER OF,但表标志符不包含 ORDER BY 子句。
428FJ 视图或具体化查询表的外部全查询不允许使用 ORDER BY。
428FL 在指定 SQL 数据更改语句的上下文中,不允许 SQL 数据更改语句。
428FM SELECT 中的 INSERT 语句指定了一个不是对称视图的视图。
428FP 只允许将一个 INSTEAD OF 触发器用于对主题视图的每种操作。
428FQ INSTEAD OF 触发器不能指定使用 WITH CHECK OPTION 定义的视图、在使用 WITH CHECK OPTION 定义的另一个视图上定义的视图或者嵌套在使用 WITH ROW MOVEMENT 子句定义的视图中的视图。
428FT 表与指定的数据分区操作不兼容。
428FU 从 FROM SQL 变换函数或方法返回的内置类型与 TO SQL 变换函数或方法的相应内置类型不匹配。
428FV 不能将方法定义为覆盖方法。
428FZ 仅为某些操作定义了 INSTEAD OF 触发器的视图不能在 MERGE 语句中用作目标。
428G1 数据分区数超过了表的表空间数。
428G2 无法从表中删除最后一个数据分区。
428G3 当全查询中的 SQL 数据更改语句的目标视图定义了 INSTEAD OF 触发器时,FINAL TABLE 无效。
428G4 无效使用了 INPUT SEQUENCE 排序。
428G5 UPDATE 语句的赋值子句必须至少指定不是 INCLUDE 列的一列。
428G6 指定了不能从全查询的 FROM 子句中的数据更改语句的目标中选择的一列。
428G8 不能启用视图以进行查询优化。
428GA 不能添加、删除或改变联合选项。
428GD PARTITION BY 子句必须指定单个列,并且它必须与 ORGANIZE BY 子句的第一列相同。
428GE 源表无法连接至分区目标表。
428GG 无效使用了容许错误的嵌套表表达式。
428GO 列选项在透明 DDL 语句中无效。
428GI XML 模式不完整,因为缺少 XML 模式文档。
428GP 无法为类型为 ARRAY 的组件指定多个元素。
428GR 已经将具有相同访问类型(READ 或 WRITE)的安全标号授予给授权标识。
428GQ 安全标号的 GRANT 与组件的现有已授权的安全标号相冲突。
428GS 对该过程指定的选项值与源过程的对应选项不匹配。
428GT 表未受安全策略保护。
42901 列函数不包括列名。
42903 WHERE 子句或 SET 子句包括无效引用,例如列函数。
42904 由于编译错误,未创建 SQL 过程。
42907 字符串太长。
42908 语句不包括必需的列表。
42910 复合语句中不允许该语句。
42911 十进制除法运算无效,因为其结果的小数位为负。
42912 列不能更新,因为它未在游标的 select 语句的 UPDATE 子句中标识。
42914 DELETE 无效,因为子查询中引用的表可能会受该操作影响。
42915 检测到无效引用约束。
42916 不能创建别名,因为它会导致重复的别名链。
42917 不能显式删除或改变该对象。
42918 用户定义的数据类型不能用系统定义数据类型名(例如 INTEGER)创建。
42919 不允许嵌套复合语句。
42921 容器不能添加至该表空间。
42925 指定的递归派生表不能指定 SELECT DISTINCT,而必须指定 UNION ALL。
42928 不能为该表指定 WITH EMPTY TABLE。
42932 程序预编译假设不正确。
42939 不能使用该名称,因为指定的标识是保留给系统使用的。
42961 指定的服务器名与当前服务器不匹配。
42962 长列、LOB 列、XML 列或结构化类型列不能用于索引、键或约束。
42963 指定的安全标号列无效。
42968 连接失败,因为没有当前软件许可证。
42969 未创建程序包。
42972 MERGE 语句的连接条件或 ON 子句中的表达式引用多个操作数表中的列。
42985 例程中不允许该语句。
42987 不允许此语句出现在过程或触发器中。
42989 使用表达式生成的列或者安全标号列不能在前触发器中使用。
42990 不允许唯一索引或唯一约束,因为键列不是分区键列的超集。
42991 BOOLEAN、BINARY 和 VARBINARY 数据类型当前仅在内部受支持。
42993 定义的列太大而不能记录。
42994 不支持原始设备容器。
42995 所请求的函数不应用于全局临时表。
42997 此版本的 DB2 应用程序请求器、DB2 应用程序服务器或两者的组合不支持该功能。
429A1 节点组对于表空间无效。
429A9 SQL 语句不能由 DataJoiner 处理。
429B2 为结构化类型或列指定的直接插入长度值太小。
429B3 可能未在子表中定义对象。
429B4 数据过滤函数不能是 LANGUAGE SQL 函数。
429B5 索引扩展名中实例参数的数据类型无效。
429B8 用 PARAMETER STYLE. JAVA 定义的例程不能具有作为参数类型或返回类型的结构化类型。
429B9 在属性赋值中不能使用 DEFAULT 或 NULL。
429BA FEDERATED 关键字必须与对联合数据库对象的引用配合使用。
429BB 在 SQL 例程中不支持对参数或变量指定的数据类型。
429BC 在 ALTER TABLESPACE 语句中有多个容器操作。
429BE 主键或唯一键是维子句中的列的子集。
429BG 范围集群表不支持该函数。
429BH 分区表定义包含不受支持的列定义,该列可能是标识列、DATALINK 列或 XML 列。
429BJ 在视图中无效使用了 WITH ROW MOVEMENT。
429BK 由于移动行涉及到基础视图,因此,尝试更新视图无效。
429BL 在非法上下文中调用了将修改 SQL 数据的函数。
429BO 不能为联合数据源创建方案。
429BP 昵称列表达式无效。
429BS 涉及到 XMLPATTERN 子句或使用数据类型 XML 定义的列的索引定义无效。
429BT 由于存在依赖性而使得转移所有权失败。
429BU 无法访问插件的用户映射存储库中的用户映射。
429BZ 由于其中一个底层表受保护,所以对 UNION ALL 视图执行的更新、删除或插入操作失败。
429C0 查询必须包含使用了所指示的列的谓词。
类代码 44 WITH CHECK OPTION 违例
表 33. 类代码 44:WITH CHECK OPTION 违例 SQLSTATE 值
含义
44000 不允许插入或更新操作,因为结果行不满足视图定义。
类代码 46 Java DDL
表 34. 类代码 46:Java DDL SQLSTATE 值
含义
46001 Java DDL - 无效 URL。
46002 Java DDL - 无效 jar 名称。
46003 Java DDL - 无效类删除。
46007 Java DDL - 无效特征符。
46008 Java DDL - 无效方法规范。
46103 Java 例程遇到了 ClassNotFound 异常。
46501 Java DDL - 未实现可选组件。
类代码 51 无效应用程序状态
表 35. 类代码 51:无效应用程序状态 SQLSTATE 值
含义
51002 未找到与 SQL 语句执行请求相对应的程序包。
51003 一致性标记不匹配。
51004 SQLDA 中的地址无效。
51005 上一系统错误已禁用此函数。
51008 预编译的程序的发行版号无效。
51015 尝试执行在绑定时发现有错的节。
51017 用户没有登录。
51021 在应用程序进程执行了回滚操作之后才能执行 SQL 语句。
51022 当 CONNECT 语句中指定的服务器已存在连接(不论处于当前状态还是休眠状态)时,指定权限名称的 CONNECT 无效。
51023 该数据库已由数据库管理器的另一实例使用。
51024 不能使用视图,因为它已被标记为不可操作。
51025 在 XA 事务处理环境中的应用程序未用 SYNCPOINT TWOPHASE 绑定。
51026 无法打开事件监视器,因为它的目标路径已由另一事件监视器使用。
51027 因为表是用户维护的具体化查询表或未处于设置完整性暂挂状态,所以 SET INTEGRITY 语句的 IMMEDIATE CHECKED 选项无效。
51028 不能使用程序包,因为它被标记为不可操作。
51030 在应用程序进程中尚未调用 ALLOCATE CURSOR 或 ASSOCIATE LOCATORS 语句中所引用的过程。
51034 使用 MODIFIES SQL DATA 定义的例程在调用它的上下文中无效。
51035 不能使用 PREVVAL 表达式,原因是在此会话中还没有为序列生成值。
51038 SQL 语句可能不再由例程发出。
51039 未设置 ENCRYPTION PASSWORD 值。
51040 编译环境无效。
类代码 53 无效操作数或不一致的规范
表 36. 类代码 53:无效操作数或不一致的规范 SQLSTATE 值
含义
53038 键限制值的数目为零或者大于键中的列数。
53040 不能像指定的那样更改缓冲池。
53045 键限制常量的数据类型与列的数据类型不相同。
53090 同一条 SQL 语句中只能引用具有一种编码方案(ASCII、EBCDIC 或 Unicode)的数据。
53091 指定的编码方案与当前用于包含对象的编码方案不相同。
类代码 54 超过 SQL 或产品限制
表 37. 类代码 54:超过 SQL 限制或产品限制 SQLSTATE 值
含义
54001 语句太长或者太复杂。
54002 字符串常量太长。
54004 语句中 SELECT 或 INSERT 列表中的项或表名太多。
54006 并置的结果太长。
54008 键太长,键的列太长,或者键的列数太多。
54010 表的记录长度太长。
54011 为表或视图指定了太多列。
54023 用于函数或过程的参数或自变量数目超出限制。
54028 已达到并发 LOB 句柄最大数。
54029 已达到打开目录扫描最大数。
54030 活动事件监视器已达最大数。
54031 已对事件监视器分配了最大文件数。
54032 已达到表的最大大小。
54033 已达到分区映射最大数。
54034 表空间的所有容器名的组合长度太长。
54035 已超过内部对象限制。
54036 容器或存储路径的路径名太长。
54037 表空间的容器映射太复杂。
54038 超出了嵌套例程或触发器的最大深度。
54045 已超出类型层次结构的最大级别。
54046 索引扩展名中已超出允许的参数的最大值。
54047 已超出表空间的最大大小。
54048 具有足够页大小的临时表空间不存在。
54049 结构化类型的实例的长度超过了系统限制。
54050 在结构化类型中超过了允许的最大属性数目。
54052 缓冲池的块页数对缓冲池对于缓冲池的大小来说太大了。
54053 为 BLOCKSIZE 指定的值不在有效范围内。
54054 超过了分区数或者超过了表空间分区数与分区限制键的相应长度的组合。
54057 XML 元素名称、属性名称、名称空间前缀或 URI 太长。
54058 XML 路径的内部表示太长。
54059 只具有空格字符的文本节点字符串值太长,无法进行 STRIP WHITESPACE 处理。
54061 对安全标号组件指定了太多元素。
54062 已经超过了安全策略中的最大组件数。
类代码 55 对象不处于先决条件状态
表 38. 类代码 55:对象不处于先决条件状态。 SQLSTATE 值
含义
55001 数据库必须迁移。
55002 未正确定义解释表。
55006 对象不能删除,因为它当前正由同一应用程序进程使用。
55007 不能改变对象,因为它当前正由同一应用程序进程使用。
55009 系统尝试对只读文件或写保护软盘进行写入。
55012 在表中已存在一个集群索引。
55019 表的状态对于该操作无效。
55022 未向此数据库注册文件服务器。
55023 调用例程时发生错误。
55024 表空间不能删除,因为与表相关的数据也在另一表空间中。
55025 必须重新启动数据库。
55026 不能删除临时表空间。
55031 错误映射文件的格式不正确。
55032 CONNECT 语句无效,因为在该应用程序启动后,数据库管理器停止。
55033 事件监视器不能在创建它或修改它所处的同一工作单元内激活。
55034 事件监视器处于无效的操作状态。
55035 不能删除该表,因为它是受保护的。
55036 不能删除该节点,因为它未从该分区映射除去。
55037 不能删除该分区键,因为该表在多节点节点组内。
55038 该节点组不能使用,因为它正在进行重新平衡。
55039 不允许访问或状态转换,因为该表空间未处于适当状态。
55041 在进行重新平衡时,不能将容器添加至表空间。
55043 当基于该类型的类型表或带类型视图存在时,不能改变结构化类型的属性。
55045 不能为该例程创建“SQL 归档”(SAR)文件,因为服务器上未提供所需组件。
55046 指定的 SQL 归档与目标环境不匹配。
55047 外部函数或方法尝试访问联合对象。
55048 不能再加密已加密的数据。
55049 未正确定义事件监视器表。
55051 ALTER BUFFERPOOL 语句当前正在处理中。
55054 不能将方法定义为覆盖方法。
55056 由于未启用数据库进行联合,因此不能更新昵称统计信息。
55057 不允许使用该语句,因为它将使增量维护某些从属表失效。
55060 还没有为数据库定义自动存储器。
55061 无法对自动存储器表空间更改表空间存储器。
55062 因为没有对数据库启用自动存储器,所以不能提供存储路径。
55063 对于该操作来说,XML 模式未处于正确状态。
55064 无法将基于标号的访问控制应用于列,因为表没有安全策略。
55065 一个表最多只能有一种安全策略。
55066 表不能分配新页,因为索引尚不支持大型 RID。
55067 表不能生成受保护的表,因为 MQT 或登台表依赖于它。
类代码 56 其他 SQL 或产品错误
表 39. 类代码 56:其他 SQL 或产品错误 SQLSTATE 值
含义
56016 为数据分区指定了无效范围。
56031 子句或标量函数无效,因为该系统不支持混合数据和 DBCS 数据。
56033 长字符串列的插入值或更新值必须是主机变量或 NULL。
56038 此环境不支持请求的功能部件。
56072 由于低级别服务器不支持函数,所以执行失败,这不会影响后续 SQL 语句的执行。
56084 在 DRDA 中不支持 LOB 数据。
56091 执行复合 SQL 语句时发生多个错误。
56092 权限类型不能确定,因为权限名称既是用户标识又是组标识。
56095 绑定选项无效。
56097 在 DEVICE 上构建的 TABLESPACE 中不允许 LONG VARCHAR 和 LONG VARGRAPHIC 字段。
56098 在隐式重新绑定或预编译期间出错。
56099 目标数据库不支持 REAL 数据类型。
560A0 对 LOB 值的操作失败。
560AA 只有 Unicode 数据库图形数据才支持使用此子句或标量函数。
560AC 包装器定义不能用于指定类型或版本的数据源。
560AF 当使用网关集中器时,PREPARE 语句不受支持。
560B0 调整的新表空间或表空间容器大小值无效。
560B1 存储过程中有无效的游标规范。
560B7 对于多行 INSERT,对于每一行,序列表达式的用法都必须相同。
560BB 对于动态预编译的 CALL 语句中的 INOUT 参数,必须在 USING 和 INTO 子句中使用相同的主机变量。
560BC 访问文件时发生错误。
560BD 联合服务器从数据源中接收到意外的错误代码。
560BF 加密工具不可用。
560C0 不能在 SQL 函数或 SQL 方法中使用以 Unicod
e 编码方案创建的表。
560C1 以 Unicode 编码方案创建的表不能是类型表或者包含图形类型或用户定义的类型。
560C2 为已删除表写历史记录文件条目失败。
560C3 后触发器不能修改为 INSERT 语句插入的一行。
560C6 引用约束不能修改由全查询内的 SQL 数据更改语句修改的行。
560C8 不能更新某些昵称统计信息。
560C9 不能说明指定的语句。
560CB 联合服务器从 Web Service 数据源中接收到 SOAP 故障。
560CD 在检索警报配置设置时指定的一个或多个值无效。
560CE 由于最近的落实或回滚操作,使得 SQL 变量不可供引用。
560CF 无法将表空间转换为大型表空间。
560CG XML 值包含一些 XML 节点的组合,该组合导致超过了内部标识限制。
560CH 超过了 XML 值中 XML 节点的子节点的最大数目。
560CI 指定要返回给客户机的结果集无效。
560CJ 必须在 IBMCATGROUP 数据库分区组中创建表空间。
类代码 57 资源不可用或操作员干预
表 40. 类代码 57:资源不可用或操作员干预 SQLSTATE 值
含义
57001 表不可用,因为它没有主索引。
57003 尚未激活指定的缓冲池。
57007 对象不能使用,因为 DROP 或 ALTER 处于暂挂状态。
57009 虚拟存储器或数据库资源暂时不可用。
57011 虚拟存储器或数据库资源不可用。
57012 非数据库资源不可用。这不会影响后续语句的成功执行。
57013 非数据库资源不可用。这将影响后继语句的成功执行。
57014 按照请求取消了处理。
57016 因为表不活动,所以不能访问它。
57017 未定义字符转换。
57019 该语句因资源问题未成功。
57020 包含数据库的驱动器被锁定。
57021 软盘驱动器门是打开的。
57022 不能创建表,因为语句的授权标识不拥有任何合适的 dbspaces。
57030 与应用程序服务器的连接超出安装定义的限制。
tp57032 已启动最大并发数据库数。
57033 发生死锁或超时,而没有自动回滚。
57036 事务日志不属于当前的数据库。
57046 不能启动新的事务,因为数据库或实例被停顿。
57047 不能创建内部数据库文件,因为该目录不可访问。
57048 访问表空间的容器时发生错误。
57049 已达到操作系统进程界限。
57050 文件服务器当前不可用。
57051 估计的 CPU 成本超出了资源限制。
57052 节点不可用,因为它所含有的容器不足以满足所有的临时表空间。
57053 因为冲突操作,所以不能对表执行操作。
57055 带有足够页大小的临时表空间不可用。
57056 程序包不可用,因为数据库处于 NO PACKAGE LOCK 方式。
57057 由于 SQL 语句的 DRDA 链中的优先条件,不能执行该 SQL 语句。
57059 表空间中没有足够的空间用于执行指定的操作。
类代码 58 系统错误
表 41. 类代码 58:系统错误 SQLSTATE 值
含义
58004 发生系统错误(它不一定阻止后续 SQL 语句的成功执行)。
58005 发生系统错误(它阻止后续 SQL 语句的成功执行)。
58008 由于分发协议错误致使执行失败,它不影响后续 DDM 命令或 SQL 语句的成功执行。
58009 由于分发协议错误致使执行失败,它导致对话的释放。
58010 由于分发协议错误致使执行失败,它将影响后续 DDM 命令或 SQL 语句的成功执行。
58011 进行绑定时 DDM 命令无效。
58012 具有指定程序包名和一致性标记的绑定进程不活动。
58014 DDM 命令不受支持。
58015 DDM 对象不受支持。
58016 DDM 参数不受支持。
58017 DDM 参数值不受支持。
58018 不支持 DDM 应答消息。
58023 系统错误导致当前程序被取消。
58030 发生 I/O 错误。
58031 连接因系统错误而未成功。
58032 不能将该进程用于设防方式的用户定义的函数。
58034 尝试在 DMS 表空间中寻找对象的页时检测到错误。
58035 尝试在 DMS 表空间中释放对象的页时检测到错误。
58036 指定的内部表空间标识不存在。
类代码 5U 实用程序
表 42. 类代码 5U:实用程序 SQLSTATE 值
含义
5U001 指定的函数或功能部件不受支持。
5U002 指定的应用程序当前不存在。
5U003 找不到活动监控器报告。
5U004 保存监视任务时所提供的一个或多个值无效。
5U005 指定的操作方式无效。
5U006 未打开必需的监视开关。
5U007 返回了 CLP 错误。有关详细信息,请参阅 CLP 消息文档。
5U008 实用程序操作标识无效。
5U009 已达到存储路径的最大数目。
5U010 对非目录数据库分区执行的复原操作不能指定自动存储路径。
5U011 复原操作必须指定自动存储路径。
5U012 路径中的数据库分区表达式无效或者不正确地使用了它。
5U013 不能继续进行复原,因为数据库分区不可用。
5U014 授权标识没有对表运行 LOAD 命令所必需的 LBAC 凭证。
5U0ZZ 例程遇到了错误。参阅 SQLCODE 以获取详细信息。
ZZZZZ 占位符 sqlstate 仅供开发使用。在交付代码之前必须更改它。