scope_identity 是物理地址?参考:
17:12:47 SQL> set serveroutput on
17:12:54 SQL> declare
17:12:57   2  v_temp varchar2(20);
17:12:57   3  begin
17:12:57   4  insert into tb values('a','aa','aaa') return rowid into v_temp;
17:12:57   5  dbms_output.put_line(v_temp);
17:12:57   6  end;
17:12:57   7  /
AAABIsAABAAABxiAASPL/SQL 过程已成功完成。已用时间:  00: 00: 00.09
17:12:57 SQL> 
17:12:57 SQL>

解决方案 »

  1.   

    是用sequence吗?可以写一个函数
    Create function fname (paralist)
    RETURN number
    IS
    declare 
    id number;
    begin
        select id :=sequencename.nextval from dual;
        insert into tablename() values(id,'desc',...);    return id;end;
      

  2.   

    我的意思是在插入数据的时候,除了自增的列外,其余的列都是要自己插入的,在插入时,我并不知道自增的那一列的值(number),我如何在插入一列后返回那个值呢?
    在sqlserver中,scope_identity ()函数就可以有这种效果!oracle中怎么实现呢?高手帮忙!
      

  3.   

    我没有看到答案呢.楼主想要的是,上次插入的时候,使用的sequence的value
      

  4.   

    是返回该行的rowid吗?那bzszp已经说得很清楚了。
    如果你说的id指的是自增列的id值的话那么whitechief的也说得很明白了。
      

  5.   

    long max_id
    select (你自已要插入的表).nextval into :max_id from dual
      

  6.   

    insert into tb(col1,col2,col3)  values(your_seq.nextval,'aa','aaa')  
    return  col1  into  v_temp; ok!