2011-07-07 115 views
2

我正在以下Oracle中塊(這是什麼做的不是那麼重要)Oracle錯誤日誌文件

BEGIN 
    SDO_RDF_INFERENCE.CREATE_RULES_INDEX(
    'my_index', 
    SDO_RDF_Models('my_model'), 
    SDO_RDF_Rulebases('RDFS')); 
END; 

並獲得以下錯誤:

ORA-29532: Java call terminated by uncaught Java exception: java.lang.NullPointerException 
ORA-06512: at "MDSYS.RDF_APIS_USER", line 7 
ORA-06512: at "MDSYS.RDF_APIS_USER", line 9 
ORA-06512: at "MDSYS.RDF_APIS", line 477 
ORA-06512: at line 2 
29532. 00000 - "Java call terminated by uncaught Java exception: %s" 
*Cause: A Java exception or error was signaled and could not be 
      resolved by the Java code. 
*Action: Modify Java code, if this behavior is not intended. 

問題:怎麼能我訪問Oracle錯誤日誌或獲取完整堆棧跟蹤或任何其他有關異常的信息。

回答

1

通常只有DBA具有查看Oracle日誌的基本權限。 但是,如果你有足夠的權限:

select value from v$parameter t 
where t.NAME='background_dump_dest' 

這個查詢將返回Oracle警報日誌文件的路徑和跟蹤\轉儲文件在Oracle服務器的機器。 警報日誌(Alert_「databasename」.log)按時間順序記錄消息和錯誤,幷包含指向追蹤\轉儲文件的指針。

此外,您可以使用Oracle企業管理控制檯在目標數據庫中的「警報日誌內容」鏈接之後查看alert_.log。

1

這並不回答關於如何在日誌中查看更多信息的問題,但您可能需要查看this以查找錯誤的一些可能原因。通常會發生這種情況,因爲您尚未被授予您試圖訪問的Oracle對象的權限。

0

嘗試在你的Oracle SQL會話中執行該語句調用失敗的存儲過程之前:

dbms_java.set_output(32000); 

這會導致Oracle JVM將Java堆棧跟蹤追加到DBMS輸出,然後你就可以在更多的檢查詳情。