DB2错误信息(按sqlcode排序)
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或LONG
VARGRAPHIC
-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、一个用户退出程序、全局的临时表或打开DATA
CAPTURE 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语句
CREATE FUNCTION语句无效,因为该语句没有RETURNS语句或者因为该语句没有指定有效
-491 42601 的SOURCE或者EXTERNAL语句
-492 42879 指定函数的指定参数的个数有错误
-495 57051 语句的估计处理器成本超出了资源限制
-496 51033 语句无法执行,因为当前服务器与调用存储过程的服务器不同
指定的数据库超过了32767 OBID的上限,或者CREATE DATABASE语句使之达到了32511
-497 54041 DBID的上限
-499 24516 指定的游标已被分配到结果集,该结果集来自已经指定的存储过程
-500 24501 因为连接被破坏,WITH HOLD游标被关闭
-501 24501 在试图获取数据或关闭一个游标前必须打开一个游标
-502 24502 在没有关闭游标前不能再次打开游标
因为列在游标的FOR UPDATE OF语句中没有被指定,该游标用于获取该列,所以不能更
-503 42912 新该列
-504 34000 不能引用一个游标,因为他不是定义到程序里的
-507 24501 在试图更新或者删除WHERE CURRENT OF前,必须打开游标
-508 24504 因为被引用的游标当前不是处于数据行上,所以不能被更新或删除
除了在游标上指定的那个表(该表由WHERE CURRENT OF语句引用的)以外,再也不能从
-509 42827 别的表上更新数据
-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 对特定的约束名指定了无效的外健值
从版本5开始,父关键字的多行更新将试图删除一个外关键字依赖的父关键字值,在版
-531 23504 本5以前,当引用主关键值外健值当前存在时,试图更新该主健值
-532 23504 删除操作违反了已指定的参照约束
-533 21501 多行插入无效,试图将多行插到自我引用的表中
-534 21502 可改变主健列值的更新语句不能在同一时刻用于更新多行
当从自我引用表中删除数据或者更新主健列时,不能指定WHERE CURRENT OF。不是版本
-535 21502 5的子系统才调用该代码
-536 42914 因为某一特定表的参照约束存在,所以删除语句无效
-537 42709 在外健语句或主健语句的规范中,每个列的出现不能多于一次
-538 42830 无效的外健;不符合引用的表没有主健
-539 42888 不能定义外健,因为被引用的表没有主健
表定义不完整,直到为主健建立了唯一索引或UNIQUE语句、或者包含GENERATED BY
-540 57001 DEFAULT属性的ROWID列
-542 42831 可以为空的列不允许作为主健的一部分包含在内
因为该表是指定了SET NULL删除规则的参照约束的父表而且检查约束不允许NULL,所以
-543 23511 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语句中的为数据类型指定的长度、精度以及标度无效
指定的INSERT、UPDATE或DELETE语句不能被发布,应为这些语句对DB2 CATLOG表执行写
-607 42832 操作
-611 53088 当LOCKSIZE是TABLE或者TABLESPACE时,LOCKMAX必须为0
-612 42711 在同一个表、索引或试图中不允许有重复列名
-613 54008 主健或UNIQUE约束太长或者包含了太多的列
-614 54008 已经超过了索引的内部健长度的最大长度(255)限制
-615 55006 不能删除这个程序包,因为该程序包目前正在执行