ORA-00600: internal error code, arguments: [kollasg:client-side tmp lob]

parknkjun發表於2014-11-05
朋友的資料庫alert警告日誌檔案裡報ORA-00600: internal error code, arguments: [kollasg:client-sid tmp lob]
資料庫版本是10.2.0.5,在mos上找到了一篇文章
ORA-00600 [kollasg:client-side tmp lob] Fetching Row With LOB Column in OCI Application (文件 ID 1418135.1)

APPLIES TO:
Oracle Database - Enterprise Edition - Version 11.1.0.6 and later
Information in this document applies to any platform.

SYMPTOMS
An OCI-based application compiled with the 11.1.0.7 client [connecting to 11.2 db] reading a CLOB field being fetched using OCISmtFetch2 fails with an ORA-00600 [kollasg:client-side tmp lob].

CAUSE
The CLOB field being fetched needs to be initialized, as when fetching a uninitialized LOB column (ie) without any LOB locator is causing the ORA 600 error.

SOLUTION
Initialize the CLOB field/column with empty_clob(), either on INSERT or after the row is inserted via an UPDATE.

官方解釋是基於oci編譯的應用程式透過客戶端連線資料庫,讀取clob欄位時會報這個錯誤,clob欄位需要初始化,當獲取一個未初始化的LOB值時會報ORA-600錯誤。

朋友說應用程式中確實有CLOB欄位,這個是oracle使用oci時的一個對於空欄位的clob的一個bug,解決方法就是針對為空的clob欄位,插入空值時用empty_clob()處理。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10271187/viewspace-1321288/,如需轉載,請註明出處,否則將追究法律責任。

相關文章