CONNECT / AS SYSDBA; GRANT CHANGE NOTIFICATION TO oe; GRANT EXECUTE ON DBMS_CHANGE_NOTIFICATION TO oe;確保將 init.ora 參數 job_queue_processes 設置為非零值,以便接收 PL/SQL 通知;蛘,您也可以使用下面的 ALTER SYSTEM 命令:
ALTER SYSTEM SET "job_queue_processes"=2;然后,在以 OE/OE 連接后,您可以創建一個通知處理程序。但首先,您必須創建將由通知處理程序使用的數據庫對象。例如,您可能需要創建一個或多個數據庫表,以便通知處理程序將注冊表的更改記錄到其中。在以下示例中,您將創建 nfresults 表來記錄以下信息:更改發生的日期和時間、被修改的表的名稱以及一個消息(說明通知處理程序是否成功地將通知消息發送給客戶端)。
CONNECT oe/oe; CREATE TABLE nfresults ( operdate DATE, tblname VARCHAR2(60), rslt_msg VARCHAR2(100) );在實際情況中,您可能需要創建更多表來記錄通知事件以及所更改行的行 ID 等信息,但就本文而言,nfresults 表完全可以滿足需要。
使用 UTL_HTTP 向客戶端發送通知
您可能還要創建一個或多個 PL/SQL 存儲過程,并從通知處理程序中調用這些存儲過程,從而實現一個更具可維護性和靈活性的解決方案。例如,您可能要創建一個實現將通知消息發送給客戶端的存儲過程!扒鍐 1”是 PL/SQL 過程 sendNotification。該過程使用 UTL_HTTPPL 程序包向客戶端應用程序發送更改通知。
清單 1. 使用 UTL_HTTP 向客戶端發送通知
文章來源于領測軟件測試網 http://www.kjueaiud.com/