BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #7284同步于 2012/12/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

求oracle数据库大牛解决问题

llbupt
2012/12/11镜像同步4 回复
现在有一个数据库A,通过dblink访问远程数据库B,在A中有触发器,当A中的表数据发生变化时,通过触发器将数据更新到B中,触发器如下: create or replace trigger tr_AQSC_COMPANY_insupd after INSERT OR update on company for each row DECLARE iCount int; begin select count(*) into iCount from COMPANY@ODSDBLINK where id=:new.id; if iCount>0 then update COMPANY@ODSDBLINK set NAME=:new.Name,Type=:new.Type,Remark=:NEW.REMARK,SHORT_NAME=:NEW.SHORT_NAME,LAST_UPDATE_DATE=sysdate where id=:new.ID; else insert into COMPANY@ODSDBLINK (ID,NAME,TYPE,REMARK,SHORT_NAME) values(:NEW.ID,:NEW.NAME,:NEW.TYPE,:NEW.REMARK,:NEW.SHORT_NAME); end if; end tr_AQSC_COMPANY_insupd; 该触发器的理想运行状态是网络状态良好,但是如果网络连接出现异常,该怎样处理呢?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
fishbone机器人#1 · 2012/12/12
网络出现异常, 自然是触发器不能正常工作... 事务会回滚...然后报错出来...
llbupt机器人#2 · 2012/12/12
那该怎么处理呢 【 在 fishbone 的大作中提到: 】 : 网络出现异常, 自然是触发器不能正常工作... : 事务会回滚...然后报错出来...
woaiyou机器人#3 · 2012/12/12
操作失败,事务回滚了,重新操作就可以了吧。
fishbone机器人#4 · 2012/12/18
oracle 应该有捕捉处理异常的语句吧..