ORA-00600: 내부 오류 코드, 인수 : [kgmgchd1], [], [], [], [], [], [], [] 해결하는 방법

ORA-00600: 내부 오류 코드, 인수 : [kgmgchd1], [], [], [], [], [], [], [] 오류가 발생하였습니다. 검색을 해보아도 'kgmgchd1'에 대한 단서는 찾기가 힘들었습니다. 그나마 다음과 같은 방법으로 오류를 해결하였습니다.

ORA-00600 내부 오류 코드, 인수  [kgmgchd1], [], [], [], [], [], [], []

이 대화 상자 대신 JIT(Just-in-time) 디버깅을 호출하는
방법에 대한 자세한 내용은 이 메시지의 뒷부분을 참조하십시오.

************** 예외 텍스트 **************
System.Exception: ORA-00600: 내부 오류 코드, 인수 : [kgmgchd1], [], [], [], [], [], [], []

SELECT ENAME FROM EMP
UNION ALL
SELECT ' ' FROM DUAL

   위치: System.Windows.Forms.Form.OnLoad(EventArgs e)
   위치: System.Windows.Forms.Form.OnCreateControl()
   위치: System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   위치: System.Windows.Forms.Control.CreateControl()
   위치: System.Windows.Forms.Control.WmShowWindow(Message& m)
   위치: System.Windows.Forms.Control.WndProc(Message& m)
   위치: System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   위치: System.Windows.Forms.ContainerControl.WndProc(Message& m)
   위치: System.Windows.Forms.Form.WmShowWindow(Message& m)
   위치: System.Windows.Forms.Form.WndProc(Message& m)
   위치: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   위치: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   위치: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 로드된 어셈블리 **************
mscorlib
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9174 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Data
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9171 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9171 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Xml
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Windows.Forms
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Data.OracleClient
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_32/System.Data.OracleClient/2.0.0.0__b77a5c561934e089/System.Data.OracleClient.dll
----------------------------------------
System.Data.OracleClient.resources
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Data.OracleClient.resources/2.0.0.0_ko_b77a5c561934e089/System.Data.OracleClient.resources.dll
----------------------------------------
System.Configuration
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9153 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Transactions
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.EnterpriseServices
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
System.Core
    어셈블리 버전: 3.5.0.0
    Win32 버전: 3.5.30729.9141 built by: WinRelRS6
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms.resources
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ko_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
Accessibility
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9149 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
mscorlib.resources
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9174 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
PresentationFramework
    어셈블리 버전: 3.0.0.0
    Win32 버전: 3.0.6920.9157 built by: WinRelRS6
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/PresentationFramework/3.0.0.0__31bf3856ad364e35/PresentationFramework.dll
----------------------------------------
WindowsBase
    어셈블리 버전: 3.0.0.0
    Win32 버전: 3.0.6920.9157 built by: WinRelRS6
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/WindowsBase/3.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
PresentationCore
    어셈블리 버전: 3.0.0.0
    Win32 버전: 3.0.6920.9157 built by: WinRelRS6
    코드베이스: file:///C:/WINDOWS/assembly/GAC_32/PresentationCore/3.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
WindowsFormsIntegration
    어셈블리 버전: 3.0.0.0
    Win32 버전: 3.0.6920.9141 built by: WinRelRS6
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/WindowsFormsIntegration/3.0.0.0__31bf3856ad364e35/WindowsFormsIntegration.dll
----------------------------------------
CrystalDecisions.Windows.Forms
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.Windows.Forms/10.5.3700.0__692fbea5521e1304/CrystalDecisions.Windows.Forms.dll
----------------------------------------
CrystalDecisions.CrystalReports.Engine
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.CrystalReports.Engine/10.5.3700.0__692fbea5521e1304/CrystalDecisions.CrystalReports.Engine.dll
----------------------------------------
CrystalDecisions.Shared
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.Shared/10.5.3700.0__692fbea5521e1304/CrystalDecisions.Shared.dll
----------------------------------------
System.Data.DataSetExtensions
    어셈블리 버전: 3.5.0.0
    Win32 버전: 3.5.30729.9141 built by: WinRelRS6
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Data.DataSetExtensions/3.5.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll
----------------------------------------
msvcm80
    어셈블리 버전: 8.0.50727.9672
    Win32 버전: 8.00.50727.9672
    코드베이스: file:///C:/WINDOWS/WinSxS/x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9672_none_d08f9da24428a513/msvcm80.dll
----------------------------------------
CrystalDecisions.ReportSource
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportSource/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportSource.dll
----------------------------------------
System.Web
    어셈블리 버전: 2.0.0.0
    Win32 버전: 2.0.50727.9174 (WinRelRS6.050727-9100)
    코드베이스: file:///C:/WINDOWS/assembly/GAC_32/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------
CrystalDecisions.Shared.resources
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1972
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.Shared.resources/10.5.3700.0_ko_692fbea5521e1304/CrystalDecisions.Shared.resources.dll
----------------------------------------
CrystalDecisions.Windows.Forms.resources
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1972
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.Windows.Forms.resources/10.5.3700.0_ko_692fbea5521e1304/CrystalDecisions.Windows.Forms.resources.dll
----------------------------------------
CrystalDecisions.ReportAppServer.CommLayer
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportAppServer.CommLayer/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportAppServer.CommLayer.dll
----------------------------------------
CrystalDecisions.ReportAppServer.ClientDoc
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportAppServer.ClientDoc/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportAppServer.ClientDoc.dll
----------------------------------------
CrystalDecisions.ReportAppServer.DataSetConversion
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportAppServer.DataSetConversion/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportAppServer.DataSetConversion.dll
----------------------------------------
CrystalDecisions.ReportAppServer.DataDefModel
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportAppServer.DataDefModel/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportAppServer.DataDefModel.dll
----------------------------------------
CrystalDecisions.ReportAppServer.Controllers
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportAppServer.Controllers/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportAppServer.Controllers.dll
----------------------------------------
CrystalDecisions.ReportAppServer.ReportDefModel
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.ReportAppServer.ReportDefModel/10.5.3700.0__692fbea5521e1304/CrystalDecisions.ReportAppServer.ReportDefModel.dll
----------------------------------------
CrystalDecisions.KeyCode
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1943
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.KeyCode/10.5.3700.0__692fbea5521e1304/CrystalDecisions.KeyCode.dll
----------------------------------------
CrystalDecisions.CrystalReports.Engine.resources
    어셈블리 버전: 10.5.3700.0
    Win32 버전: 10.5.0.1972
    코드베이스: file:///C:/WINDOWS/assembly/GAC_MSIL/CrystalDecisions.CrystalReports.Engine.resources/10.5.3700.0_ko_692fbea5521e1304/CrystalDecisions.CrystalReports.Engine.resources.dll
----------------------------------------

************** JIT 디버깅 **************
JIT(Just In Time) 디버깅을 사용하려면 이 응용 프로그램 또는 컴퓨터의
config 파일(machine.config)의 jitDebugging 값을 
system.windows.forms 섹션에 설정해야 합니다.
또한 응용 프로그램은 디버깅할 수 있도록 컴파일되어야
합니다.

예:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

JIT 디버깅을 사용하면 처리되지 않은 모든 예외는
이 대화 상자에서 처리되지 않고 컴퓨터에 등록된 JIT 
디버거에 보내집니다.

ORA-00600: 내부 오류 코드, 인수 : [kgmgchd1], [], [], [], [], [], [], []

ORA-00600 오류와 관련하여 발생시점에서 특이사항을 정리해 보았습니다. 

  • 데이터베이스 툴에서는 쿼리가 정상적으로 조회가 되며, 응용 프로그램에서 내부 오류 코드 인수 문제가 발생하였습니다.
  • 내부 오류 코드가 발생한 부분은 뷰를 조인하는 부분입니다.

쿼리를 분석해 보니, 2개의 뷰를 UNION ALL을 통해 조회하는 부분이 존재합니다. 특히 일부 컬럼의 데이터타입이 다르다는 점을 발견하였습니다. UNION ALL의 앞 테이블은 VARCHAR2인 컬럼이었고, 뒷 테이블은 CHAR인 컬럼이었습니다. 해당 부분에 대해 데이터타입을 동일하도록 수정하여 처리하였습니다. 이것으로 내부 오류 코드를 해결하였답니다.

댓글