基本的 oracle 更新语句
Posted
技术标签:
【中文标题】基本的 oracle 更新语句【英文标题】:basic oracle update statement 【发布时间】:2012-11-19 19:45:37 【问题描述】:我正在使用 oracle 编写存储过程。我是 oracle 和存储过程的新手,但我想做的事情似乎相当简单,但我遇到了麻烦。
我有 2 张桌子 BATCH_ISA
和 BATCH_TEMP
临时表是使用来自BATCH_ISA
以及其他一些表的记录创建的。在记录成功移入BATCH_TEMP
表后,我需要将BATCH_ISA
表中的标志从“Y”更新为“N”。
我正在尝试更新BATCH_ISA
中的所有记录,其中ISA_KEY
字段在两个表中都存在,并将标志设置为“N”
我应该使用什么基本更新语句?
【问题讨论】:
【参考方案1】:-- SET EVERYTHING TO 'N' FIRST:
UPDATE BATCH_ISA
SET
FLAG = 'N';
-- NOW UPDATE ONLY MATCHED ROWS TO 'Y':
UPDATE BATCH_ISA
SET
FLAG = 'Y'
WHERE
EXISTS (
SELECT * FROM BATCH_TEMP
WHERE BATCH_ISA.ISA_KEY = BATCH_TEMP.ISA_KEY
);
COMMIT;
我在第一次更新后删除了提交,但如果有很多行,您可以使用它来节省重做日志开销。
【讨论】:
以上是关于基本的 oracle 更新语句的主要内容,如果未能解决你的问题,请参考以下文章