加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle SQL – 可以返回列值的“before”状态

发布时间:2020-12-12 15:12:30 所属栏目:百科 来源:网络整理
导读:假设myTable中的以下行: id = 1letter = 'a' 在Oracle中,可以轻松地执行以下操作: update myTable set letter = 'b'where id = 1returning letter into myVariable; 然后myVariable将保存值“b”. 我正在寻找的是一些返回信件的“之前”值的方法 即.将以前
假设myTable中的以下行:
id     =  1
letter = 'a'

在Oracle中,可以轻松地执行以下操作:

update myTable set
  letter = 'b'
where id   = 1
returning letter 
into myVariable;

然后myVariable将保存值“b”.

我正在寻找的是一些返回信件的“之前”值的方法

即.将以前的更新替换为:

update myTable set
  letter = 'b'
where id   = 1
returning letter "before the update"
into myVariable;

而myVariable应该保存值’a’;

我明白T-SQL可以通过OUTPUT子句来实现.

有没有Oracle等同的方式实现这一点,所以我不必先做一个“选择”只是为了获得以前的价值?

update
  (
   select T.*,(select letter from DUAL) old_letter
     from myTable T
    where id=1
  )
   set letter = 'b'
returning old_letter into myVariable;

经过Oracle 11.2测试

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读