2017-02-10 23 views
2

我在Oracle 11g中,我偶然發現在USER_TABLES闊葉奇怪的錯誤:甲骨文USER_ERRORS表包含錯誤移除的對象

BIN$R/SOMEUID==$0 TRIGGER 4 5 5 PL/SQL: Statement ignored ERROR 0 
BIN$R/SOMEUID==$0 TRIGGER 3 5 37 PLS-00222: no function with name 'PROCNAME' exists in this scope ERROR 222 

事實是,我們已經對這個模式與這些錯誤的一些觸發,但它在前一段時間被刪除。重新創建具有相同名稱且沒有錯誤的觸發器,請勿從user_errors表中刪除這些行。

我在互聯網上找不到任何這樣的評論 - 雲有人請解釋這是怎麼發生的,我應該如何清理這些錯誤?

回答

3

這與previous question about LOBS相似。

BIN$R/SOMEUID==$0名稱表示該對象在the recycle bin。在這種情況下,您似乎已經放棄了觸發器違反的表格。觸發器定義被保留,但通過BIN$ name標記爲針對丟棄的對象。

您還在某些時候放棄了功能PROCNAME,因此觸發器已失效。這可能是在表格被刪除之前。

(我實際上無法在11.2.0.4中重現這一點,所以這可能會在補丁集中發生變化)。

您可以通過look in the recycle bin查看對象的原始名稱。

如果你想永久刪除觸發defintition你將不得不purge the recycle bin,完全或只是刪除的表

+0

是的,這是事實。謝謝你的解釋。 –