oracle触发器同步两张表字段,oracle 触发器,当一个表更新或插入时将数据同步至另个库中的某个表中...

有两个表分别是 A用户下的 T_SRC_WEATHER_TSPG字段如图,

4a5a060eeaf8ac6cc751e6838115924a.png

B用户下的t_src_weather 表,如图:

7e524ea944f6b796692056678334293c.png

要求,当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进入该触发器发现编译错误:

952024c7cdb77e8d2adc8235d7fd9083.png

发现错误为没有权限,登录dba用户将 B用户下的该表的插入权限赋给A用户 sql为:grant insert on yjzhhistory.t_src_weather  to yjzhaccess

赋予权限后再执行测试更新语句,成功,此时触发器执行触发事件,两个表中都有了对应的数据

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值