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

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

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

2、用来调用系统函数
[code lang=”sql”]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;–获得一个随机数

3、得到序列的下一个值或当前值,用下面语句
[code lang=”sql”]select sequence.nextval from dual;–获得序列sequence的下一个值
select sequence.currval from dual;–获得序列sequence的当前值

4、可以用做计算器
[code lang=”sql”]select 7*9 from dual;

本博客所有文章如无特别注明均为原创

如果觉得对你有帮助,可以通过下方打赏对作者表示鼓励

本文采用知识共享署名-非商业性使用-相同方式共享

如若转载,请注明出处:《SQLServer的select @@identity在Oracle中的写法》https://www.fangsi.net/763.html

(4)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
锋哥的头像锋哥管理员
上一篇 2014年2月17日 11:30
下一篇 2014年2月24日 11:25

相关推荐

发表回复

登录后才能评论