始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

Oracle ORA-00600: [dmlsrvColLenChk_2:dty] 错误原因及解决

发布时间:  2012/9/1 17:36:34

群里有人贴了一个错误:

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));


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线