如果你是在PL/SQL中可以使用
insert into .. values ... RETURNING INTO 来得到插入的值

解决方案 »

  1.   

    oracle数据库中在插入记录时,一定是知道了id的,即使是一个序列也要先通过序列的运算先得到序列值,然后插入表中,写触发器处理的例外。一般用nextval得到序列的下一个值。sqlserver中的处理就不一样了,是先插入记录,后得到id的值,正和oracle相反。
      

  2.   

    插入一条记录后,主id虽然可以用seq.currval得到当前值,但是这张表是同时被多个用户进行操作的,所以否定了这个方法。我想得到的是我插入的这条记录的id,还有什么方法吗,
    用jdbc可以吗?
      

  3.   

    既然在oracle中是先确定id的,为什么不先记录下来这个id,插入成功后返回给操作者这个id,而非要在插入记录后返回呢?这主要看你的程序怎么处理的了。jdbc只是一种连接方式,返回什么样的值是由你的程序控制的。
      

  4.   

    可以用seq.currval得到当前值也可Max(id)
      

  5.   

    当然不能用seq.currval,如果有两个事务同时取seq.currval的话其中一个事务会返回失败的,不知各位有没有试过这种情况。