1. 程式人生 > >SQL中常見sqlCode原因分析

SQL中常見sqlCode原因分析

tinc 上下文 不返回 字符串 cache ast 所有 常量 要求

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 | 指定的綁定選項不兼容

SQL中常見sqlCode原因分析