Welcome 微信登录

首页 / 数据库 / MySQL / Oracle ORA-00600: [dmlsrvColLenChk_2:dty] 错误原因及解决

群里有人贴了一个错误:ORA-00600: 内部错误代码, 参数:[dmlsrvColLenChk_2:dty], [2], [0], [16896], [], [], [], [], [], [], [], []ORA-06512: 在 "IDBG17_DEV.ETL_LINK13_LLR_BRN", line 44ORA-06512: 在 line 2MOS 上搜了一下,有篇文章说明: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 semanticscolumnThis 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 sizecharactersExample:
alter table kf_abschluss_tst modify (c_konto_id varchar2(19));MySQL存储过程和存储过程中循环小结Oracle RMAN 兼容性 及 不同版本和不同平台之间使用 常见问题说明相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数