2016-09-14 48 views
1

我有一個數據庫包MAINLOAD這是從模式的導入模式B.ALTER COMPILE不填充DBA_ERRORS表

在架構中的一個,這個對象是有效的。在模式B中,由於數據庫鏈接錯誤,此對象變爲無效。

此對象在導入後出現在DBA_OBJECTS表中,但其錯誤消息未出現在DBA_ERRORS表中。

現在,當我嘗試通過發出命令編譯此對象:ALTER PACKAGE MAINLOAD COMPILE BODY時,此包由於DBLink錯誤而無法編譯,但它仍未出現在DBA_ERRORS表下。

但是,當我通過SQLDEVELOPER工具/任何其他開發工具手動編譯此對象時,此對象開始出現在DBA_ERRORS表下。

我試過通過發佈命令 - DBMS_UTILITY.COMPILE_SCHEMA也是,但沒有運氣。

我有一個實用程序,編譯DBA_OBJECTS表下的所有無效對象,然後使用DBA_ERRORS表在屏幕上打印錯誤消息。

我無法理解爲什麼在這兩個過程中存在這種差異。

另外,想知道是否有任何選項可以用這個DBA_ERRORS表填充而不需要手動編譯。

任何幫助,高度讚賞。

感謝&問候, 阿希斯·薩海

回答

0

我假設你的SQLDeveloper執行ALTER PACKAGE MAINLOAD COMPILE BODY

執行此命令後,SqlDeveloper很可能在連接上發出提交或回滾,以使數據消失。嘗試從sqlplus做同樣的事情,你會看到。

+0

我也試過從sqlplus中,但沒有效果。 – Ashis

+0

我還記得,當你執行'alter session set current_schema = ...'時,它不能很好地工作。切換會話模式時,sqlplus命令show errors並不顯示任何內容。或者,也許嘗試從'SELECT行,文本從sys.All_Errors'中選擇。 – ibre5041

+0

錯誤未出現在DBA_ERRORS/USER_ERRORS/ALL_ERRORS中。我得到這個錯誤 - SQL> alter package MAINLOAD compile body; ORA-04052: ALTER包MAINLOAD第1行編譯身體 * 出錯錯誤查找遠程對象 MAINLOAD @ MCC ORA-00604時:太多的數據庫:在遞歸SQL 1級 ORA-02020錯誤發生鏈接正在使用中 – Ashis