ES10_MobileAuthor双向同步触发器分享

5229
17

韦韬然 数据老手Lv5

发表于2018-12-14 16:35

楼主
grant select,update,delete,insert on bi.ES10_MobileAuthor to bi2;

grant select,update,delete,insert on bi2.ES10_MobileAuthor to bi;
--创建包头
create or replace package pk_check_active is
  --标识是否为触发器引发
  n number :=0;
  --获取是否为触发器触发标识,1为触发器触发
  function getactive return number;
  --设置状态
  procedure setactive(n1 in number);
end pk_check_active;

create or replace package body pk_check_active is
  function getactive return number is
  begin
    return n;
  end getactive;
  procedure setactive(n1 in number) is
  begin
    n := n1;
  end setactive;
end pk_check_active;



---bi1触发器
create or replace trigger tres10_mobileauthor after insert or update or delete
on es10_mobileauthor for each row
begin
   if pk_check_active.getactive() =1 then
     pk_check_active.setactive(2);  return;
    else
     pk_check_active.setactive(1);
   end if;
if inserting then
  insert into bi2.ES10_MobileAuthor(UUID_, UNAME_, REGISTERTIME_, ISAGREE_, DESC_, ISJY_) values (:new.UUID_, :new.UNAME_, :new.REGISTERTIME_, :new.ISAGREE_, :new.DESC_, :new.ISJY_);
elsif updating and :new.ISAGREE_ <> ld.ISAGREE_ then         
  update bi2.ES10_MobileAuthor set  ISAGREE_ = :new.ISAGREE_ where UUID_ = :new.UUID_;
elsif updating and :new.ISJY_ <> ld.ISJY_ then
  update bi2.ES10_MobileAuthor set  ISJY_ = :new.ISJY_ where UUID_ = :new.UUID_;
elsif deleting then
  delete from bi2.ES10_MobileAuthor where UUID_ = ld.UUID_;
end if;
    pk_check_active.setactive(0);
end;

--将包授权
grant execute on PK_CHECK_ACTIVE to bi2;

--bi2中建立包同义词
create synonym PK_CHECK_ACTIVE for bi.PK_CHECK_ACTIVE;



--bi2触发器
create or replace trigger tres10_mobileauthor after insert or update or delete
on es10_mobileauthor for each row
begin
   if pk_check_active.getactive() =1 then
     pk_check_active.setactive(2);  return;
    else
     pk_check_active.setactive(1);
   end if;
if inserting then
  insert into bi.ES10_MobileAuthor(UUID_, UNAME_, REGISTERTIME_, ISAGREE_, DESC_, ISJY_) values (:new.UUID_, :new.UNAME_, :new.REGISTERTIME_, :new.ISAGREE_, :new.DESC_, :new.ISJY_);
elsif updating and :new.ISAGREE_ <> ld.ISAGREE_ then         
  update bi.ES10_MobileAuthor set  ISAGREE_ = :new.ISAGREE_ where UUIeD_ = :new.UUID_;
elsif updating and :new.ISJY_ <> ld.ISJY_ then
  update bi.ES10_MobileAuthor set  ISJY_ = :new.ISJY_ where UUID_ = :new.UUID_;
elsif deleting then
  delete from bi.ES10_MobileAuthor where UUID_ = ld.UUID_;
end if;
    pk_check_active.setactive(0);
end;


最近看过此主题的会员

yiyiyiyiy

coll

李小钗

吃炒饭的王小明i

风荷

杨思怡

ch023011

Developer

陈小作

进阶的小木桩

liu1997

缱绻

哎哟喂

zhaosc

admin

辰哥

社区小辣妹

17个回答

只看楼主

韦韬然 数据老手Lv5

发表于2018-12-14 16:37

只看该作者

取消 关注该作者的回复

沙发

参考链接:
https://blog.csdn.net/u013062329/article/details/78908570

韦韬然 数据老手Lv5

发表于2018-12-14 16:38

只看该作者

取消 关注该作者的回复

板凳

一个无聊的需求,两个bi环境要求审核表同步。。。。然后emmm就这样凑合用吧

韦韬然 数据老手Lv5

发表于2018-12-14 16:39

只看该作者

取消 关注该作者的回复

地板

触发器.rar (834 Bytes, 下载次数: )



发现直接发有的字母变成了表情emmm
传个附件吧。需要自取

韦韬然 数据老手Lv5

发表于2018-12-14 17:07

只看该作者

取消 关注该作者的回复

5#

感觉判断那儿写的有点罗嗦。。。不过凑合用吧,,,改了也提高不了效率,,懒得改了

辰哥 管理员

发表于2018-12-14 17:49

只看该作者

取消 关注该作者的回复

6#

韦韬然 发表于 2018-12-14 16:39
发现直接发有的字母变成了表情emmm
传个附件吧。需要自取

辰哥必须来给兄弟一个赞!

韦韬然 数据老手Lv5

发表于2018-12-14 17:51

只看该作者

取消 关注该作者的回复

7#

辰哥 发表于 2018-12-14 17:49
辰哥必须来给兄弟一个赞!

韦韬然 数据老手Lv5

发表于2018-12-14 18:22

只看该作者

取消 关注该作者的回复

8#

韦韬然 数据老手Lv5

发表于2018-12-15 14:01

只看该作者

取消 关注该作者的回复

9#

韦韬然 数据老手Lv5

发表于2018-12-15 18:10

只看该作者

取消 关注该作者的回复

10#

{:3_48:}

韦韬然 数据老手Lv5

发表于2018-12-16 17:43

只看该作者

取消 关注该作者的回复

11#

{:3_53:}

上一页12下一页共2页

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号