我試圖通過執行註銷甲骨文12C變更通知:刪除甲骨文更改通知
DBMS_CQ_NOTIFICATION.DEREGISTER(24906);
但是,這給出了一個錯誤:
ORA-29970: Specified registration id does not exist
雖然當我查詢USER_CHANGE_NOTIFICATION_REGS
查看它清楚地說明正確的regid
。
任何人遇到此問題?
我試圖通過執行註銷甲骨文12C變更通知:刪除甲骨文更改通知
DBMS_CQ_NOTIFICATION.DEREGISTER(24906);
但是,這給出了一個錯誤:
ORA-29970: Specified registration id does not exist
雖然當我查詢USER_CHANGE_NOTIFICATION_REGS
查看它清楚地說明正確的regid
。
任何人遇到此問題?
(文檔ID 971412.1)
怎樣才能數據庫更改通知未建立PL/SQL被刪除?
[最後更新於2017年7月5日]
Applies to:
Oracle數據庫 - 企業版 - 版本10.2.0.1 to 11.2.0.2
[發佈10.2 to 11.2
]
的Oracle數據提供.NET - 版本10.2.0.1 to 11.2.0.1
[發佈10.2 to 11.2
]
本文檔中的信息適用於任何平臺。 檢查相關的二○一六年十二月十四日
Symptoms
你必須創建通過暴露這個功能,如ODP.Net
的OCI API
或a higher level API
數據庫更改通知的應用程序。它不會通過PL/SQL
,either through a stored procedure or PL/SQL block
創建通知。
此應用程序在沒有清理這些通知的情況下退出,通常通過致命錯誤進行退出,因爲任何受控關機都應該刪除任何通知。或者可能是應用程序仍在開發中,刪除通知的代碼有一個錯誤,或尚未添加。
這會在數據庫中留下孤立的通知,這些通知無法刪除,因爲它們只能在與創建時相同的會話中刪除。既不可以它們與the PL/SQL function
DBMS_CQ_NOTIFICATION.DEREGISTER();
被除去,這將引發的誤差,根據所述MOS-注
ORA-29970: Specified registration id does not exist.
解決方案:
這解釋了很多。但是,這是什麼解決方案呢?註冊確實是由.NET服務觸發的,但我需要能夠通過PL/SQL將其刪除 –