用序列啊!create sequence seq1;insert into t(id,name,...) values(seq1.nextval,....);

解决方案 »

  1.   

    insert into t(id,name,...) values(seq1.nextval,....) return id to v_id;
    然后以v_id 查询即可:
    select * from t where id=v_id;
      

  2.   

    insert into t(id,name,...) values(seq1.nextval,....) return id to v_id;
    报错:
    ORA-00925: 缺失 INTO 关键字
      

  3.   

    不好意思,我记错了,应该是
    insert into t(id,name,...) values(seq1.nextval,....) 
    return id into v_id; -- 此处应该为into
    然后以v_id 查询即可:
    select * from t where id=v_id;
      

  4.   

    我对return id into v_id还是不懂,是写在存储过程里吗
      

  5.   

    不用存储过程也可以,这是当作一组sql语句来执行。
    不过,以前我一直用程序里的锁来实现。
    这样的好处是
    1,序列号命名方式可以由自己来决定
    2,如果要将数据库从oracle移植到sql server,会好移植点(虽然发生这种事的可能性几乎不存在)实现目的的方法还有可以选的,看个人需要咯