群裡有人貼了一個錯誤:
ORA-00600: 內部錯誤碼, 參數:[dmlsrvColLenChk_2:dty], [2], [0], [16896], [], [], [], [], [], [], [], []
ORA-06512: 在 "IDBG17_DEV.ETL_LINK13_LLR_BRN", line 44
ORA-06512: 在 line 2
MOS 上搜了一下,有篇文章說明:
ORA-00600: [dmlsrvColLenChk_2:dty], [2]During Insert [ID 437343.1]
An insert statement fails with thefollowing error and stack trace:
--insert 操作失敗,並報如下錯誤。
ORA-00600: internal error code, arguments:[dmlsrvColLenChk_2:dty], [2], [], [],[], [], [], []
Stack trace:
ksedst ksedmp ksfdmp kgerinv kgeasnmierrdmlsrvColLenChk
insLoadRow qermtRop PGOSF342_qersqRow Procedure qerfiFetch qersqFetch
一.導致這個錯誤的原因:
This is bug 5526494 whichis closed duplicate of base bug 6627733:
Bug 5526494.-P Base Bug 6627733
Abstract: ORA-600 [DMLSRVCOLLENCHK_2:DTY], [12] RUNNING INSERT AS SELECT
Base Bug 6627733
Abstract: OERI[dmlsrvColLenChk_2:dty] inserting NULLs into CHAR length semanticscolumn
This problem is introduced by the fix for Bug 3447792 .
--這個問題由bug3447792 引入。
ORA-600 [dmlsrvColLenChk_2:dty] can occur when inserting NULL values into columns with character length semantics along with NULL into DATE or NUMERIC columns in an insert SQL.
--當把NULL 插入character 類型的欄位時,或者 將NULL 插入DATE,NUMBERIC 類型的欄位時會發生ORA-600 [dmlsrvColLenChk_2:dty] 錯誤。
eg:
create table bug6627733
(
VAR_CHAR VARCHAR2(3 CHAR),
SOME_DATE DATE
);
INSERT ALL
WHEN 1=1
THEN
INTO bug6627733 ( VAR_CHAR, SOME_DATE )
VALUES ( NULL, NULL )
SELECT NULL FROM dual;
^
ORA-600
二.解決方案:
Bug 6627733 is fixed inOracle releases 10.2.0.5.0, 11.1.0.7.0 and 12.1.0.0.0.
--bug 6627733 在10.2.0.5 11.1.0.7.0 和 12.1.0.0.0以後已經修複。
To implement the solution, please downloadand apply Patch 6627733 if it is available for your platform.
--為瞭解決這個問題,也可以應用Patch 6627733.
In some cases, a possible workaround is to alter the columns of typeVARCHAR2(nn CHAR) as shown in the example below.
First identify table(s) involved in the failing query and then describe thetable(s). For example:
SQL> descr kf_abschluss_tst
Name Null? Type
-------------------------------- -------- ------------------
C_KONTO_ID NOT NULL VARCHAR2(19 CHAR)<==
C_MANDANT NOT NULL NUMBER(5)
B_ENDE NOT NULL NUMBER(18,3)
F_ZU_KOMPENSIERENDER_ABSCHLUSS NOT NULL NUMBER(1)
C_KONTO_ID_ZINSAUS VARCHAR2(19 CHAR) <==
WORKAROUND:
Modify columns of type VARCHAR2(nn CHAR) and remove maximum length sizecharacters
Example:
alter table kf_abschluss_tst modify (c_konto_id varchar2(19));
-------------------------------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Skype: tianlesoftware
Email: tianlesoftware@gmail.com
Blog: http://www.tianlesoftware.com
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
-------加群需要在備忘說明Oracle資料表空間和資料檔案的關係,否則拒絕申請----
DBA1 群:62697716(滿); DBA2 群:62697977(滿) DBA3 群:62697850(滿)
DBA 超級群:63306533(滿); DBA4 群:83829929 DBA5群: 142216823
DBA6 群:158654907 DBA7 群:172855474 DBA總群:104207940