.....
t_sq number:=0;
begin
select DJK_Test_ID.Nextval into t_sq from dual;
:new.id:=t_sq;
end;
/

解决方案 »

  1.   

    create  or  replace  trigger Bef_Ins_Into_Test
    before insert on DJK_Test
    for each row
    begin
       select DJK_Test_ID.Nextval into :new.id;
    end;
    /不要把其它数据库的语法用在 oracle 里呦,:)
      

  2.   

    create  or  replace  trigger Bef_Ins_Into_Test
    before insert on DJK_Test
    for each row
    begin
       select DJK_Test_ID.Nextval into :new.id from dual;
    end;
      

  3.   

    CREATE OR REPLACE TRIGGER Bef_Ins_Into_Test
    BEFORE INSERT ON DJK_Test
    REFERENCING OLD AS old NEW AS new
    FOR EACH ROW
    BEGIN
      IF :new.ID IS NULL THEN
        SELECT DJK_Test_ID.NEXTVAL
        INTO   :new.ID
        FROM   dual;
      END IF;
    END;
    /
      

  4.   

    谢谢各位,小弟以前一直用SQL Server,刚转到Oracle,所以有些思维定势。
    谢谢各位的帮忙
      

  5.   

    另一个不用触发器的方法
    insert into table_name values (SEQ_NAME.NEXTVAL,....)