1 前言
作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?咳咳,莫要否认,你有、我有,全都有啊!不过,值得庆幸的是,已经有人帮咱们整理出一份关于 DB2 的错误代码大全啦,以后再遇到数据库报错,直接拎出看看,岂不爽哉?当然,在此对原作者送上万分的感谢。
2 错误代码及说明
SQLCode | SQLState | 状态说明 |
---|---|---|
000 | 00000 | SQL语句成功完成 |
01xxx | XXX | 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语句必须为一个字符 |
-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 | 输入的变量值对指定的列无效 |
-303 | 42806 | 因为数据类型不兼容,不能分配数值 |
-304 | 22003 | 因为数据超出了范围,不能分配数值 |
-305 | 22002 | 没有NULL指示符变量 |
-309 | 22512 | 因为引用的宿主变量被设置成NULL,所以谓词无效 |
-310 | 22501 | 十进制的宿主变量或参数包含非十进制数据 |
-311 | 22501 | 输入的宿主变量长度无效,或者时负值或者太大 |
-312 | 42618 | 没有定义宿主变量或者宿主变量不可用 |
-313 | 7001 | 宿主变量的个数不等于参数标识的个数 |
-314 | 42714 | 模糊的宿主变量引用 |
-327 | 22525 | 在最后分区的关键字范围内,不能插入行 |
-330 | 22021 | 不能成功的翻译字符串 |
-331 | 22021 | 字符串不能分配到宿主变量,因为其不能成功的被翻译 |
-332 | 57017 | 不能为两个命名的编码字符集的ID定义翻译规则 |
-333 | 56010 | 子类型无效导致翻译失败 |
-338 | 42972 | ON语句无效,必须引用连接的列 |
-339 | 56082 | 访问DB2 2.2版本的子系统被拒绝,原因时ASCII到EBCDIC翻译不能进行 |
-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 | 560A5 | 不能为指定的列或者指定的分区建立辅助表,因为其辅助表已经存在 |
-769 | 53096 | CREATE AUX TABLE的规格与基表不匹配 |
-770 | 530A6 | 指定的表必须有一个ROWID列,那么该表才可以包含一个LOB列 |
-771 | 428C7 | 无效的ROWID列规范 |
-797 | 42987 | CREATE TRIGGER包含不被支持的语法 |
-798 | 428C9 | 不能把一个值插入到用GENERATED ALWAYS定义的ROWID列 |
-802 | 22012 | 某一特定操作发生了异常错误,被零除 |
-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 | 05103 | 划<->载入组件的时间戳不匹配,在执行计划中没有从同一个预编译中建立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的隐含或开放连接 |
-1773 | null | 在 HADR 数据库下不支持的操作(如备库可能不支持写操作) |
-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 | 指定的绑定选项不兼容 |
温馨提示:说实话,现在网上传的「DB2 错误代码大全」都是同一个版本,原始出处已经不祥,因此,博主也仅把自己参考的地址链接过来,聊表心意啦!没准,这份资料就是官方给出的呢?转载地址:http://xiaozpjava.iteye.com/blog/1341397