Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Problem with Trigger and function
Thank You very much for Your help, with 2 minor adjustements thr trigger was
working:
create or replace trigger orderposition_ariu after insert or update on
orderposition for each row
diff number(3); --> field length must be defined
begin
diff := ''; --> variaable mut be invoked inthe PL/SQLblock
if inserting then
update storage
set reserved = reserved + :new.quantity
where artnr = :new.artnr;
else
diff := :new.quantity - :old.quantity; if diff <> 0 then
if :new.status = 'N' then update storage set reserved = reserved - diff where artnr = :new.artnr; else if :new.status = 'D' then update storage set stored = reserved + diff where artnr = :new.artnr; end if; -- status = 'D' end if; -- status = 'N'
Lensman
"Sybrand Bakker" <gooiditweg_at_sybrandb.demon.nl> schrieb im Newsbeitrag
news:dm9umu8ct2gjeiobkgagv37ba47cvp1n7c_at_4ax.com...
>
> create or replace trigger orderposition_ariu after insert or update on
> orderposition for each row
> diff number;
> begin
> if inserting then
> update storage
> set reserved = reserved + :new.quantity
> where artnr = :new.artnr;
> else
> diff := :new.quantity - :old.quantity;
> if diff <> 0 then
> if :new.status = 'N'
> then
> update storage
> set reserved = reserved - diff
> where artnr = :new.artnr;
> else
> if :new.status = 'D' then
> update storage
> set stored = reserved + diff
> where artnr = :new.artnr;
> end if; -- status = 'D'
> end if; -- status = 'N'
> end if; -- diff <> 0
> end if; -- inserting or updating;
> end;
> /
>
> Dead easy. Lesson one in using triggers.
>
> Sybrand Bakker, Senior Oracle DBA
>
> To reply remove -verwijderdit from my e-mail address
Received on Fri Aug 30 2002 - 04:48:19 CDT