1
create table userdetail(
  userdetailsid number(3) not null,
  userid varchar2(5),
  firstname varchar2(15),
  lastname varchar2(15),
  email varchar2(15),
  primary key (userdetailsid)
);

create sequence Iseq
start with 1
increment by 1;

create or replace trigger userDetailInsert
before insert on userdetail
begin
  :userdetailsid:=Iseq.nextval;
end;

我得到的错误如下:

Error at line 2: PLS-00049: bad bind variable 'USERDETAILSID'
4

1 回答 1

2

:从/ 中删除:userdetailsid或与:old./:new结合使用for each row

create or replace trigger userDetailInsert
before insert on userdetail for each row
begin
   :new.userdetailsid:=Iseq.nextval;
end;

如果使用一个:列名,则被认为是一个绑定变量

一般来说,如果要引用旧值或新值,请使用:old.userdetailsidresp。 :new.userdetailsid.

于 2013-11-03T21:17:57.230 回答