oracle 觸發器,當一個表更新或插入時將數據同步至另個庫中的某個表中


有兩個表分別是 A用戶下的 T_SRC_WEATHER_TSPG字段如圖,

B用戶下的t_src_weather 表,如圖:

要求,當A用戶下的T_SRC_WEATHER_TSPG表有插入或者更新數據時,同時將數據同步至B用戶下的t_src_weather表中,

創建觸發器,sql語句如下:

  CREATE OR REPLACE TRIGGER weather_history_update  -- weather_history_update為觸發器名稱
     AFTER update or insert on  Yjzhaccess.T_SRC_WEATHER_TSPG  --AFTER 指定 觸發時間,on后跟表名稱,即當表Yjzhaccess.T_SRC_WEATHER_TSPG有更新或者插入時觸發時間
     for each row                                                                                                     --每一行
     begin                                                                                          
     insert into yjzhhistory.t_src_weather (ID,SSXQMC,SSXQDM,HISTIME,WEATHER)  --指定插入的表及字段
    VALUES(:new.ID,:new.MC,:new.ID,:new.gxsj,:new.type);                                          --將新插入的數據引入到該表中
    end;

 執行完后執行 INSERT INTO Yjzhaccess.T_SRC_WEATHER_TSPG  values(23,'二十三大隊',66.66,16.66,'雪',66,sysdate)出現異常,報ora-04098:觸發器無效且未通過重新驗證通過plsql developer進入該觸發器發現編譯錯誤:

發現錯誤為沒有權限,登錄dba用戶將 B用戶下的該表的插入權限賦給A用戶 sql為:grant insert on yjzhhistory.t_src_weather  to yjzhaccess

賦予權限后再執行測試更新語句,成功,此時觸發器執行觸發事件,兩個表中都有了對應的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM