DB2中错误代码池

Posted jun_life

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2中错误代码池相关的知识,希望对你有一定的参考价值。

工作中,在操作DB2数据库过程中,难免会出现一些这样那样的问题。对很多错误DB2都会有对应的SQL CODE和SQL State,通过SQL CODE和SQL State定位问题就很简单。现在把一个完整的SQLCODE和SQLState错误信息和相关解释作以下说明,一来可以自己参考,对DB2错误自行找出原因 
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 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 没有定义的对象名 
-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 输入的变量值对指定的列无效

-302 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才能被发布 
以上是关于DB2中错误代码池的主要内容,如果未能解决你的问题,请参考以下文章

DB2错误代码

DB2:在缓冲池 "1" 中当前没有任何页面可用。. SQLCODE=-1218, SQLSTATE=57011, DRIVER=3.61.75

DB2 Funktion不起作用,错误代码SQLCODE = -104

DB2问题记录本

两种方法可以查看db2错误代码信息

使用 cli 连接到 db2 失败,错误代码为 -1531