CREATE OR REPLACE TRIGGER "USERBIMSHR"."BaseWTInfo_AMD" before INSERT OR DELETE ON "USERBIMSHR"."TGWT_BASEWTINFO" FOR EACH ROW declare HRID varchar(20); CardNum varchar(20); DateTimeStr varchar(20); beginCardNum :=:NEW.fdcardNumber; DateTimeStr:=To_char(:NEW.fdDateTime,'YYYY-MM-DD'); select fdHRID into HRID from userbimshr.tgHR_BaseInfo where fdWTCardNumber=CardNum; Userbimshr.NewWT(HRID,DateTimeStr); insert into userbimshr.tempstr (tempstr) values ('ddddd'); end;
随触发器的使用者 -- BaseWTInfo_AMD commit,rollback,没什么问题呀?!
before INSERT OR DELETE
ON "USERBIMSHR"."TGWT_BASEWTINFO"
FOR EACH ROW
declare
HRID varchar(20);
CardNum varchar(20);
DateTimeStr varchar(20);
beginCardNum :=:NEW.fdcardNumber;
DateTimeStr:=To_char(:NEW.fdDateTime,'YYYY-MM-DD');
select fdHRID into HRID from userbimshr.tgHR_BaseInfo where fdWTCardNumber=CardNum;
Userbimshr.NewWT(HRID,DateTimeStr);
insert into userbimshr.tempstr (tempstr) values ('ddddd');
end;
每一条都执行触发器的操作,即每一条都commit,
这样就无法再进行rollback到整个更新操作之前的状态。
但你可以在procedure 写commit,rollback;
怎么办啊!!!!!!!