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

onlygirl2006 2007-03-14 10:21:44
在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;
这样就出错了,该怎么写?
...全文
337 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wy2000490 2007-03-16
  • 打赏
  • 举报
回复
ORACLE不支持自动增长的
可以使用sequence的方式
然后存储过程输出刚才使用的ID不就行了吗
tianyacao007 2007-03-15
  • 打赏
  • 举报
回复
sequence.currval 当前值,sequence.nextval下一个值
zhp6489 2007-03-14
  • 打赏
  • 举报
回复
oracle不支持在INSERT..SELECT 语句中使用RETURNING子句
tianyacao007 2007-03-14
  • 打赏
  • 举报
回复
自增字段?用sequence
onlygirl2006 2007-03-14
  • 打赏
  • 举报
回复
据说自增字段不太好
插入一条记录后,sequence.currval是指当前记录的id还是下一条的?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧