是不是序列不能做为表的一列呀,是必须用触发器吗?
SQL> create or replace trigger my_seq_tri
  2  before insert on longyun.emp for each row
  3  declare
  4  next_id number;
  5  begin select seq_name.nextval into next_id from emp;
  6  :new.id:=next_id;
  7  end;
  8  /警告: 创建的触发器带有编译错误。
我已经在上面创建了解seq_name序列,但是在创建上面的触发器时,出现了"警告: 创建的触发器带有编译错误。",请帮忙???

解决方案 »

  1.   

    create or replace trigger my_seq_tri
      2  before insert on longyun.emp for each row
      3  declare
      4  next_id number;
      5  begin 
        select seq_name.nextval into :new.id from emp;
     
      7  end;
      8  /
      

  2.   

    SCOTT>>create sequence seq_name
      2  increment by 1
      3  start with 1
      4  maxvalue 99999999999
      5  nocycle
      6  cache 10
      7  /序列已创建。已用时间:  00: 00: 00.01
    SCOTT>>create table a (xh number,name varchar2(20));表已创建。已用时间:  00: 00: 00.01
    SCOTT>>insert into a values(seq_name.nextval,'卢学柱');已创建 1 行。已用时间:  00: 00: 00.00
    SCOTT>>select * from a;       XH NAME
    --------- --------------------
            1 卢学柱已用时间:  00: 00: 00.00
      

  3.   

    你用的哪个用户建的sequence啊?
    你用你建emp表的用户建一个sequence看,只要select seqname.nextval from dual可以选出就没问题。