create or replace trigger autoid_tbt
before insert on T_BOOK_TYPE for each row
begin
select sqe_tbt.nextval into :new.id from dual;
end autoid_tbt;
/

解决方案 »

  1.   

    create or replace trigger autoid_tbt
       before insert on T_BOOK_TYPE for each row
       begin
       select sqe_tbt.nextval into :new.id from dual;
      end autoid_tbt;
      

  2.   

    原来可以直接做数据替换啊,hoho,我没这样干过
      

  3.   

    hanychun(HANHAN) ,ORARichard(没钱的日子......)兄,
    小弟按你们说的,重新写了一启遍,最好的结果仍是:
    警告: 创建的触发器带有编译错误。
      

  4.   

    show err
    看看具體 的錯誤提示是什麼?
      

  5.   

    包子先生,具体的错误信息就是:selectchange
      

  6.   

    SQL> create or replace trigger autoid_tbt
      2  before insert on T_BOOK_TYPE for each row
      3  declare
      4    next_id number;
      5  begin
      6    --select sqe_tbt.nextval into next_id from dual;
      7    --:new.id:=next_id;
           --先把上两句屏蔽,看看有什么问题
           :new.id := sqe_tbt.nextval ;
           --当然在编译时,你可以直接用数值替换sqe_tbt.nextval ;
      8  end autoid_tbt;
      9  /
      

  7.   

    你的触发器本身写的没有问题,就是看看是否能找到你的序列sqe_tbt,就是说你的序列和触发器是否是在同一用户下!!
      

  8.   

    CREATE OR REPLACE TRIGGER "TR_TBName" BEFORE
    INSERT ON "TBName" FOR EACH ROW
    BEGIN
      SELECT SQL_TBName_CloumN.NEXTVAL INTO :NEW.CLoumN FROM DUAL;
    END; 这里是可以用的哦!