DB2错误信息汇总

操作数据库过程中,遇到许多问题,很多都与SQL CODE和SQL State相关,现在把一个完整的SQLCODE和SQLState错误信息和相关解释作以下说明,一来可以自己参考,对DB2错误自行找出原因,也可以供大家学习和参考(声明:这是搜集网上的资料得来的)。

sqlcode sqlstate 说明

000 00000 SQL语句成功完成

000 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 ORDERBY语句中指定了无效数字,该数字要么小于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或LOCKTABLE 语句上指定一个不是表的其他对象这是无效的

-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 没有定义的对象名

创建数据库的时候,报42704错误。如: 
=>create database test
=>SQL0204N  "SYSTEM_1386_US" is an undefined name.  SQLSTATE=42704
解决办法:
=>create database test using codeset gbk territory cn

-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 输入的变量值对指定的列无效

DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null
原因:表中某字段的长度不够,发生字符串截断。 
解决办法:查看表定义,加大字段长度。
2013-03-20 10:55457DB2error