基本的 oracle 更新语句

Posted

技术标签:

【中文标题】基本的 oracle 更新语句【英文标题】:basic oracle update statement 【发布时间】:2012-11-19 19:45:37 【问题描述】:

我正在使用 oracle 编写存储过程。我是 oracle 和存储过程的新手,但我想做的事情似乎相当简单,但我遇到了麻烦。

我有 2 张桌子 BATCH_ISABATCH_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 更新语句的主要内容,如果未能解决你的问题,请参考以下文章

oracle 里SQL语句UNION怎么用

oracle SELECT语句太长的问题

oracle数据库响应用户修改数据操作的基本流程

Oracle 语句如何转义

oracle PL/SQL语句题目求教!

SQL语句怎样把远程数据更新到本地数据库中。