环境:两个异地数据库 A 和 B 通过DB_LINK连接
操作:从A库中的tab_a中取数据插入到B库中的tab_b中,然后修改A库tab_a.isused字段的值。
问题:当插入到B成功后,在修改A库tab_a.isused字段的值时突然数据库链路中断连接,导致无法修改tab_a.isused字段的值,这时能让刚才插入的数据也回滚吗?
操作:从A库中的tab_a中取数据插入到B库中的tab_b中,然后修改A库tab_a.isused字段的值。
问题:当插入到B成功后,在修改A库tab_a.isused字段的值时突然数据库链路中断连接,导致无法修改tab_a.isused字段的值,这时能让刚才插入的数据也回滚吗?
解决方案 »
- oracle数据库怎么恢复bkp备份文件
- 如果表进行在线重定义后发现有问题
- 谁来帮帮我 ORA-00936:missing expression 错误。
- 10g登录为什么总提示用户名或密码无效?
- 求一触发器写法,各位高手100分求解啊!!!!
- oracle嵌套表赋值问题
- 请问ORACLE 9I中,安装目录ORACLE下有个目录叫ORADATA,是干什么呢?
- dos下的sqlplus如何连接数据库,各式应该怎莫写
- 不知道该在哪里提问,Oracle的OSB问题,只能在这里了
- 求大神指导一个sql查询问题
- OracleOraHome90HTTPServer 报错,很奇怪!
- 能否在TOAD中直接减小TEMP临时表空间文件的大小 达到释放磁盘空间的目的?
CREATE OR REPLACE TRIGGER HD_QHD.LEO_TRIG
AFTER DELETE OR INSERT OR UPDATE
ON HD_QHD.LEO_EMS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
--pragma autonomous_transaction;
sbz varchar2(2); -- 增加删除修改标志位BEGIN
-- your code here
-- (Trigger template "Default" could not be loaded.) if updating then
if updating then
sbz := 'u';
insert into leo_eam@ems_eam (COD,nam,bz ) values(:new.cod ,:new.nam, sbz);
end if;
if inserting then
sbz := 'i';
insert into leo_eam@ems_eam (COD,nam,bz ) values(:new.cod ,:new.nam, sbz);
end if;
if deleting then
sbz := 'd';
insert into leo_eam@ems_eam (COD,nam,bz ) values(:old.cod ,:old.nam, sbz);
end if;exception when others then
-- raise ;
sbz:='er';end;