可以判斷old值是否為5,new值是否為4
解决方案 »
- 请教一条SQL语句
- 菜鸟求救...服务器get
- oracle 10g logminer 为什么只能看当天的日志。
- 关于windows 2003上安装RAC事vip ip的问题。
- 怎样把mysql表里的数据导入到oracle中?
- 求助:用户权限与触发器创建
- 在ORACLE中如何实现只存文件路径而不存文件?
- 如何通过查询获取某个列的外键信息
- 初学者向各位老师请教几个关于Oracle SQL*Plus问题!本人不甚感激,希望各位高人指点指点。有兴趣的进来看看!大家共同进步。谢谢!!
- 求教一个Ibatis后台报错的问题,数据库为oracle
- ★★★★★ORACLE触发器的问题★★★★★
- 急,高分,怎样将一个.xml文件导入到数据库中?
BEFORE DELETE OR UPDATE
ON customer
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
ls_pricetype char(10);
ls_userid char(30);
ls_osuserid char(255);
ls_machine char(255);
Begin
ls_osuserid := sys_context('USERENV','OS_USER');
ls_userid := sys_context('USERENV','SESSION_USER');
ls_machine := sys_context('USERENV','TERMINAL');
IF UPDATING('FIELDNAME') THEN
IF (:OLD.FIELDNAME = 5 ) AND (:NEW.FIELDNAME= 4) THEN
--由5变成4的时候执行下面的操作
INSERT INTO BASEINFOLOG( USERID , OSUSERID , MACHINE , OPERATE ,
TABLENAME , INID , OLDID , OLDNAME ,
NEWID , NEWNAME )
VALUES ( ls_userid , ls_osuserid , ls_machine , 'UPDATE' ,
'CUSTOMER' , :OLD.CUSTOMERINID , :OLD.CUSTOMERID , :OLD.NAME ,
:NEW.CUSTOMERID , :NEW.NAME );
END IF;
before update on a
for each row
begin
if :new.id=4 and :old.id=5 then
....
end if;
end;
/