Infolinks

Saturday 12 May 2012

PLSQL--MUTATING-TRIGGER

create table aw_xx(ename varchar2(10),empno number)

create table aw_xx_xx(ename varchar2(10))


create or replace trigger trg_mut
before insert or update on aw_xx for each row
begin
update aw_xx set ename=:new.ename where deptno in(30,12);
end;

drop trigger trg_mut


insert into aw_xx values('rajjj',20)


create or replace package xx_res_mu is
g_ename varchar2(100);
end;
/
create or replace package body xx_res_mu is
begin
null;
end;


create or replace trigger trg1
before insert on aw_xx
for each row
begin
xx_res_mu.g_ename:=:new.ename;
update aw_xx set ename=xx_res_mu.g_ename where deptno in (12,30);
end;

drop trigger trg1

create or replace trigger trg2
before insert on aw_xx
for each row
declare
pragma autonomous_transaction;
begin
update aw_xx set ename=xx_res_mu.g_ename where deptno in (12,30);
commit;
end;

drop trigger trg2

insert into aw_xx values('vera',40)

select *from aw_xx



select *from emp

======================================================================================================================

create or replace package xx_res_mu is
g_ename varchar2(100);
end;

create or replace package body xx_res_mu is
vc_ename varchar2(20);
begin
null;
end;


create or replace trigger trg1
before insert on aw_xx
for each row
begin
xx_res_mu.g_ename:=:new.ename;
update aw_xx_xx set ename=xx_res_mu.g_ename;
end;


create or replace trigger trg2
before insert on aw_xx
for each row
declare
pragma autonomous_transaction;
begin
update aw_xx_xx set ename=xx_res_mu.g_ename;
commit;
end;

drop trigger trg2

insert into aw_xx values('qqqq',100);

select * from aw_xx

select * from aw_xx_xx





No comments:

Post a Comment