1.先select xiaobo.se_orderid.nextval from dual;然后再select xiaobo.se_orderid.currval from dual;
2。很明显,不可以那样使用。
要达到相同的目的,可以:
create or replace trigger tri_on_ins
before insert on orders 
for each row
begin
select se_orderid.nextval into :orderid from dual;
end;

解决方案 »

  1.   

    我记得在哪里看到可以的,如果我要维持Orderid的值是连续的,那该怎么办呢。
      

  2.   

    create or replace trigger tri_on_ins
    before insert on orders 
    for each row
    begin
    select se_orderid.nextval into :orderid from dual;
    end;
      

  3.   

    序列用来自动产生唯一ID。
    如果在触发器中得用序列,在插入时可以不管ID,有触发器自动执行。
    如果用语句插入也行,就像 insert into table_name(id,name,...) values(seq_name.nextval,'name',..);
    一般就这两种用法:
    1.创建sequence
    create sequence seq_name
    minvalue 1
    maxvalue 999999999999999999
    start with 1
    increment by 1
    cache 20;
    可以直接在插入时调用seq_name.nextval;
    如insert into table_name(proid) values(seq_name.nextval);2.创建触发器(同时要创建sequence):
    create or replace trigger trg_name
    before insert on table_name
    for each row
    begin
    select seq_name.nextval into :new.proid from dual;
    end;
    /
      

  4.   

    http://expert.csdn.net/Expert/topic/3029/3029227.xml?temp=.6271936