Oracle
獲取有關無效視圖的通知
我每周有 40 個視圖集成/同步到工單管理系統。
這些視圖基於 GIS 表,這些表是出了名的混亂。隨著時間的推移,視圖最終可能會變得無效。
例子:
- 使用者刪除或重命名基礎表中的列,但未能通知 IT 更改,因此視圖不會相應更新。
- 結果,視圖將變得無效:
ORA-04063: view "ROADS_VW" has errors
或ORA-00904: "FIELD1": invalid identifier
.我想在每週將視圖同步到工作訂單管理系統之前擷取並修復無效視圖(或修復基礎數據)。
有沒有辦法讓 Oracle 通知我無效視圖?
例如,如果集成發生在星期五,那麼如果任何視圖無效,則在星期四收到一封電子郵件。
您可以使用以下過程獲取無效視圖:
DECLARE CURSOR InvaliViews AS SELECT OBJECT_NAME FROM USER_OBJECTS WHERE object_type = 'VIEW' AND status = 'INVALID'; BEGIN FOR aView IN InvaliViews LOOP UTL_MAIL.SEND( sender => 'noreply@your_domain.com', recipients => 'your-email@your_domain.com', subject => 'Notification about invalid views', message => 'View '||aView.OBJECT_NAME||' is not valid'); end loop; end;
您可以每週執行一次由調度程序作業觸發的此類程序