首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

PL/SQL Developer 編譯存儲過程遇到 ORA-07445 錯誤的解決方案

     編輯:Oracle 資料庫基礎

問題現象

在 Linux AS3 + Oracle 9.2.0.5 環境下,使用 PL/SQL Developer 或 TOAD 等第三方工具編譯 Procedure、Trigger 時,工具頻繁自動斷開、編譯失敗,Alert Log 大量出現 ORA-07445 錯誤;但改用 SQL*Plus 編譯則正常。

錯誤訊息範例

Errors in file /u01/app/oracle/admin/sensky/udump/sensky_ora_656.trc:
ORA-07445: exception encountered: core dump [ptmak()+104] [SIGSEGV] [Address not mapped to object] [0x8] [] []

根因分析

經 Metalink (MOS) 查證,此為 Oracle 9i 的已知 Bug (Bug 2858875),與 Change Data Capture (CDC) 功能相關。當第三方工具進行 PL/SQL 偵錯/編譯時,會觸發內部 CDC 觸發程式,導致 Process 發生 Segmentation Fault。

解決方法

以 SYS 權限執行移除 CDC 物件的腳本:

SQL> @?/rdbms/admin/rmcdc.sql

執行完成後,再使用 PL/SQL Developer 或 TOAD 編譯存儲過程、觸發程式即可正常通過。

相關 Bug 編號

  • Bug 2858875 - ORA-7445 WITH SQL NAVIGATOR
  • Bug 2613832 - GSI 92 -- TTS -- GETTING ORA-7445 WHILE IMPORTING DICTIONARY

此問題困擾多日,執行 rmcdc.sql 後即刻解決,特此記錄供遇到相同問題的 DBA 參考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved