有个表test 当test表里面插入数据并且name是“张三”的话,将名字变成“李四”
这个触发器该怎么写那。(我就想达到上面的目的)我试验了一下。create or replace trigger TRG_PHA_COM_APPLYOUT_INSERT
before insert on pha_com_applyout (before:这样写没有问题,但是插入的还是insert进去的值,触发器没有生效
after:这样写的话,update语句就报错)
for each row
declare
v_feecode VARCHAR2(3);
begin
select t.fee_code
into v_feecode
from pha_com_baseinfo t
where t.drug_code = :new.drug_code; if (v_feecode = '003' and :new.billclass_code = 'P') then
update pha_com_applyout m
set m.billclass_code = '100908181927'
where m.apply_number = :new.apply_number;
end if;end TRG_PHA_STO_BILLLIST;
这个触发器该怎么写那。(我就想达到上面的目的)我试验了一下。create or replace trigger TRG_PHA_COM_APPLYOUT_INSERT
before insert on pha_com_applyout (before:这样写没有问题,但是插入的还是insert进去的值,触发器没有生效
after:这样写的话,update语句就报错)
for each row
declare
v_feecode VARCHAR2(3);
begin
select t.fee_code
into v_feecode
from pha_com_baseinfo t
where t.drug_code = :new.drug_code; if (v_feecode = '003' and :new.billclass_code = 'P') then
update pha_com_applyout m
set m.billclass_code = '100908181927'
where m.apply_number = :new.apply_number;
end if;end TRG_PHA_STO_BILLLIST;
create table test1 (sname varchar2(30));create or replace trigger trg_test
before insert on test1
for each row
declare
-- local variables here
begin
if inserting then
if (:new.sname = '张三') then
:new.sname := '李四';
end if;
end if;
end trg_test;
/
insert into test1(sname) values('王五');
insert into test1(sname) values('马六');
insert into test1(sname) values('张三');
commit;
SQL> select * from test1;
SNAME
------------------------------
王五
马六
李四
SQL>