首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于在oracle存储过程里取出自增字段值的有关问题,相当于sql server @@identity

2013-03-26 
关于在oracle存储过程里取出自增字段值的问题,相当于sql server @@identity在sqlserver里插入一条记录后,

关于在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不就行了吗

热点排行