日期:2014-05-17  浏览次数:20880 次

关于在oracle存储过程里取出自增字段值的问题,相当于sql server @@identity
在sql   server   里插入一条记录后,取出该记录自增字段的值用
Set   @EntNO   =   @@Identity就可以了
在oracle   存储过程里怎么写?
这样写编译通过的,正确吗?
insert   into   table1(col1,col2)   values(val1,val2)   return   EntNo   into   v_EntNO;
(我自增字段是通过触发器完成的)
但是如果要写这样
insert   into   table2   (col1,col2)   select   col3,col4   from   table2   return   EntoNo   into   v_EntNo;
这样就出错了,该怎么写?

------解决方案--------------------
自增字段?用sequence
------解决方案--------------------
oracle不支持在INSERT..SELECT 语句中使用RETURNING子句
------解决方案--------------------
sequence.currval 当前值,sequence.nextval下一个值
------解决方案--------------------
ORACLE不支持自动增长的
可以使用sequence的方式
然后存储过程输出刚才使用的ID不就行了吗