程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ora-600[kcbz_check_objd_typ]錯誤處理

ora-600[kcbz_check_objd_typ]錯誤處理

編輯:Oracle教程

ora-600[kcbz_check_objd_typ]錯誤處理


基本要素

有渠道反饋,HIS軟件在對數據進行保存的時候,提示ora-600錯誤,具體的錯誤信息如下:

[Microsoft][ODBC driver forOracle][Oracle]ORA-20999: ORA-00600: 內部錯誤代碼, 參數:[kcbz_check_objd_typ], [0], [0], [1], [], [], [], [], [], [], [], []

ORA-06512: 在"ZLHIS.ZL_ERRORCENTER", line 73

ORA-06512: 在 "ZLHIS.ZL_病人XX打印_UPDATE",line 231

ORA-06512: 在 line 1

該錯誤無法跳過,導致業務無法正常運行。

問題分析

步驟一:按提示分析‘存儲過程’

按理這個提示還是比較明確,根據經驗判斷可能是ZL_病人XX打印_UPDATE可能有問題,結合ORA-06512錯誤,嘗試重建該過程和同義詞,執行了以上操作問題依舊。

步驟二:分析ora-600錯誤

接著分析下ORA-600[kcbz_check_objd_typ]錯誤,該錯誤按照百度上的解釋是由於Oracle在檢查內存中的數據塊時,發現數據塊上的對象號是錯誤的,拋出該錯誤提示,進一步分析問題,發現是在訪問【病人XX打印】表的時候拋出的錯誤,我們單獨對該表進行分析,我們對該表進行全表查詢的時候,提示ora-08103錯誤,但是如果只查詢部分表,則查詢正常。

\ <喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+tavKx8bkyrW4w7bUz/PKx7Tm1Nq1xKOsyOfPwqO6PC9wPgo8cD48aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20150528/2015052810190127.jpg" alt="\">

我們再對該表的結構進行排查,發現該表的索引都是BIN$類似的名稱,證明該表是通過閃回方式進行了恢復操作,這裡我們終於定位了問題的所在。

問題產生的根本原因就是因為操作員誤操作,對病人護理打印表進行了drop操作,然後用閃回方式進行了恢復,但是因為某些原因,可能導致數據恢復了,但是數據庫字典表相關內容出現了錯誤(或者叫不匹配),這樣就導致數據庫對該表做任何操作,都會提示錯誤,如我們對ZLHIS用戶進行統計信息收集,同樣會得到如下提示:

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved