【求助】Oracle自增字段创建触发器报错
表user_info的字段Userid(number类型)设置为自增字段,相应的序列已经建成,但是建触发器报错:
CREATE OR REPLACE TRIGGER "gw"."tri_users_info" BEFORE INSERT ON "gw"."users_info" REFERENCING OLD AS "OLD" NEW AS "NEW"
BEGIN
IF :new.Userid is null or :new.Userid=0 then
select users_info_seq.NEXTVAL
into :new.Userid
FROM sys.DUAL;
end if;
END;
保存报错:ORA-24344 success with compilation error.
请教各位前辈大侠。。。。
[最优解释]
该是没问题的,比如
CREATE OR REPLACE TRIGGER tony."tri_users_info" BEFORE INSERT ON tony.emp REFERENCING OLD AS "OLD" NEW AS "NEW"
for each row
BEGIN
IF :new.empno is null or :new.empno=0 then
select users_info_seq.NEXTVAL
into :new.empno
FROM sys.DUAL;
end if;
END;
create or replace trigger gw.tri_users_info
before insert
on gw.user_info
--REFERENCING OLD AS "OLD" NEW AS "NEW"
for each row
begin
if :new.Userid is null or :new.Userid=0 then
:new.Userid := user_info_seq.nextval;
end if;
end;
/
CREATE OR REPLACE TRIGGER gw."tri_users_info" BEFORE INSERT ON gw.users_info REFERENCING OLD AS "OLD" NEW AS "NEW"
for each row
BEGIN
IF :new.Userid is null or :new.Userid=0 then
select users_info_seq.NEXTVAL
into :new.Userid
FROM sys.DUAL;
end if;
END;