Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Generating unique key numbers
Jonathan Gennick wrote:
>
> On 29 Nov 97 15:39:10 GMT, "Michal MotalĂk"
> <cross_at_zl.inext.cz> wrote:
>
> >I can not create trigger:
> >
> >CREATE TRIGGER tabtrig
> >BEFORE INSERT ON tab
> >FOR EACH ROW
> >BEGIN
> > :NEW.id := tabseq.NEXTVAL;
> >END;
> >
> >The sequence "tabseq" was created.
> >I get the error PLS-00357.
> >(reference to sequence is not permitted in these context)
> >
> >Does anybody know where the problem is?
>
> To get a sequence value in Oracle, you have to select from
> dual. You need to do something like:
>
> create trigger tabtrig
> before insert on tab
> for each row
> DECLARE
> nextkey number;
> BEGIN
> select tabseq.nextval into nextkey from dual;
> :new.id := nextkey;
> END;
create or replace trigger tr_eventlog_ins
before insert on eventlog for each row
begin
select id.nextval into :new.id from dual;
end;
> ------------------------------------
> Jonathan Gennick
> gennick_at_worldnet.att.net
> http://home.att.net/~gennick
-- Mentor Graphics Library Products Group - "Parts 'R Us!" Work: hank_oredson_at_mentorg.com Home: HOredson_at_aol.com Work: http://www.eparts.com Home: http://members.aol.com/W0RLIReceived on Tue Dec 02 1997 - 00:00:00 CST