首先判断这个字段的值
   SELECT AA INTO S_AA FROM TABLE WHERE ID=
 IF s_aa ='XXX' then
    DELETE  ....
 ELSE 
    UPDATE ...... end if;

解决方案 »

  1.   

    to LGQDUCKY(飘):
      你这是写在触发器里面的语句吗?我的意思是当更新一记录时触发一触发器,在触发器内部根据具体的情况再做删除处理。但我试了一下发现好像在触发器内不能实现此功能,不知道是不是触发器真的不能实现此功能?
      

  2.   

    to sanoul:
      这会有什么问题了?又如何解决了?
      

  3.   

    行级触发器记录条件是否满足.
    CREATE OR REPLACE TRIGGER aaaa_test
       before Update
       ON aaaa REFERENCING NEW AS NEW OLD AS OLD
       FOR EACH ROW
    BEGIN
      if :NEW.no='10' then
        aaaa_package.dele_bool:='1';
      end if;
    END;
    语句级执行.
    CREATE OR REPLACE TRIGGER aaaa_test1
       after Update
       ON aaaa REFERENCING NEW AS NEW OLD AS OLD
    BEGIN 
      if aaaa_package.dele_bool='1' then 
        delete aaaa where no='10';
    aaaa_package.dele_bool:='0';
      end if;
    END;
    包体记录判断条件
    CREATE OR REPLACE package aaaa_package
     IS
    v_deleteID aaaa.no%type;
    dele_bool char(1):='0';
    end aaaa_package;
    /
      

  4.   

    表aaaa结构.
    CREATE TABLE AAAA
    (
      NO  VARCHAR2(10)
    )
    这种情况是变异表处理.我测试成功.