我想用一个触发器将表A中的一些字段复制到表B中相关字段中,并用表A的这字段值覆盖表B的直,下面我是我做的触发器,触发器没有报错,但是到数据库去查看时并没有在表A中生产新的数据,请大家指教
create or replace trigger trig_fhd
after update on et_expdetailbill
for each row
begin
if :new.ibillstatus=:old.ibillstatus and :old.ibillstatus='1' and :new.cexpdetailbillid!=:old.cexpdetailbillid then
insert into so_salereceive(csalereceiveid,vreceivecode,dbilldate,cdeptid,cemployeeid,ctransporttypeid,dr) values (to_char(sysdate,'yyyymmdd')||substr(:new.cexpdetailbillid,9),:new.vbillcode,:new.dbilldate,:new.cdeptid,:new.cpsnid,:new.ctransportmode,'0');
end if;
end;
create or replace trigger trig_fhd
after update on et_expdetailbill
for each row
begin
if :new.ibillstatus=:old.ibillstatus and :old.ibillstatus='1' and :new.cexpdetailbillid!=:old.cexpdetailbillid then
insert into so_salereceive(csalereceiveid,vreceivecode,dbilldate,cdeptid,cemployeeid,ctransporttypeid,dr) values (to_char(sysdate,'yyyymmdd')||substr(:new.cexpdetailbillid,9),:new.vbillcode,:new.dbilldate,:new.cdeptid,:new.cpsnid,:new.ctransportmode,'0');
end if;
end;
解决方案 »
- windows 64位expdp导出,windows 32位impdp 导入提示异常
- 数据库备份问题
- 为什么单点登录(sso)页面,第一次密码输入错误,再次输入也进不去?
- 简单出发器 急 谢谢
- 谢谢大家!
- 如何把数据中0—9的阿拉伯数据全部替换为@
- 自知不才来问个存储过程问题,执行过程的时候説不是有效的SQL语句,我该怎么办
- 如果时间为:****-**-** 00:00:00的时候,用getString取出的时间为:****-**-** 00:00:00.0后面多了".0",其他的情况没问题
- 怎么立即kill一个session?
- ORA-01438错误
- oracle执行效率
- 一个巨复杂sql没有思路 整不了了。。。..
看SQL是必须符合条件才会执行.
确定两个事情:
1、触发器是否为 disable状态
2、是否符合你的IF条件。