Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: -- insert instead of an update
Alkos wrote:
> "Frank" <fbortel_at_nescape.net> a écrit dans le message news: > bpgk4n$ns2$1_at_news2.tilbu1.nb.home.nl... >
> > (id,version); >
> > (label,version); >>>>
>>>create or replace view data
>>>as select
>>>id,label
>>>from tab_data
>>>where deleted=0 and version=0;
>>>
>>>create sequence seq_data_uid_gen nomaxvalue start with 1;
>>>
>>>create or replace trigger trg_data_bi_001
>>>before insert
>>>on tab_data
>>>for each row
>>>declare
>>> gen_id number;
>>>begin
>>> select seq_data_uid_gen.nextval into gen_id from dual;
>>> :new.id:=gen_id;
>>>end;
>>>/
>>>
>>>create or replace trigger trg_data_au_001
>>>instead of update
>>>on data
>>>declare
>>> gen_vers integer:=1;
>>>begin
>>> begin
>>> select nvl(max(version)+1,1) into gen_vers from tab_data
>>> where id=:old.id;
>>> exception
>>> when OTHERS then
>>> gen_vers:=1;
>>> end;
>>>
>>>
>>> insert into tab_data(id,label,version)
>>> values(:old.id,:old.label,gen_vers);
>>>
>>> update tab_data set label=:new.label where id=:new.id and version=0;
>>>
>>>end;
>>>/
>>>
>>>create or replace trigger trg_data_id_001
>>>instead of delete
>>>on data
>>>begin
>>> update tab_data set deleted=1 where id=:old.id;
>>>end;
>>>/
>>>
>>>
>>>
>>>
> > > Hello, > > INSTEAD OF are supported in 8i for updatable views. > Does 'quote' definitely in 9iR2 'quote' mean that 9i allows instead of > triggers to be defined on tables ? > Could be great ! I should recycle on 9i asap but it's a bother that most of > my customers don't :-( > > Alkos > > > > > > > > >
-- Regards, Frank van BortelReceived on Thu Nov 20 2003 - 14:57:38 CST