有一张user表  字段 id,name
序列user_seq求一条语句,在.net中得到刚刚插入的序列值 insert into user(id,name)values(user_seq.nextval,'test')
.....
就像mssql中自增字段:
insert into user(name)values('test') select @@identity

解决方案 »

  1.   

    在oracle中是不可能的,你要做的就是:程序中,先把value值得到,然后写到sql语句中,然后执行insert。
      

  2.   

    当然,你可以通过存储过程来实现一次性insert和得到序列值
      

  3.   

    create sequence seq_1;
    create table test(a int,b varchar2(100));
    declare
      v_a int;
      v_b varchar2(100);
    begin
      insert into test
      values
        (seq_1.nextval, 'abc')
      returning a, b into v_a,v_b;
      dbms_output.put_line('a=' || v_a || ',' || 'b=' || v_b); 
    end;
    /
    --输出:a=1,b=abc
    drop sequence seq_1;
    drop table test;
      

  4.   

    4楼的兄弟,你的变量能返回java程序或者.net程序啊???!!!!
      

  5.   

    楼上,当然可以了!
    select user_seq.nextval from dual;取序列的下一个值
    select user_seq.curval from dual;取序列的当前值
      

  6.   

    select user_seq.currval from dual;取序列的当前值    --少了r
     
      

  7.   

    select user_seq.curval from dual;取序列的当前值 狂汗,如果在这条语句运行之前,已经有很多语句插入了呢,回来的不知道是什么值了