1. 首页
  2. 程序生涯
  3. 数据库

SQLServer的select @@identity在Oracle中的写法

SQLServer中做多表关联操作的时候不知道大家有没有用过一个方法“select @@identity”用来取当前插入记录的ID,最近需要把代码从SQLServer迁移到Oracle中遇到了这个问题。在Oracle中并不支持“select @@identity”这种写法。那该怎么办呢?下面我们就需要用到多功能的dual了。在Oracle中我们可以使用

select sequence.currval from dual;[/code]
来获得序列sequence的当前值。

知识扩展:关于dual表
dual是一个虚拟表,用来构成select的语法规则,Oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下
1、查看当前用户,可以在 SQL Plus中执行下面语句

select user from dual;[/code]

2、用来调用系统函数

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间
select SYS_CONTEXT('USERENV','TERMINAL') from dual;--获得主机名
select SYS_CONTEXT('USERENV','language') from dual;--获得当前locale
select dbms_random.random from dual;--获得一个随机数[/code]

3、得到序列的下一个值或当前值,用下面语句

select sequence.nextval from dual;--获得序列sequence的下一个值
select sequence.currval from dual;--获得序列sequence的当前值[/code]

4、可以用做计算器

select 7*9 from dual;[/code]

原创文章,作者:锋哥,如若转载,请注明出处:https://www.fangsi.net/763.html

发表评论

登录后才能评论

联系我们

在线咨询:点击这里给我发消息

邮件:service@fangsi.net

工作时间:周一至周五,9:30-18:30,节假日休息