如何从表a中更新表b中数据不相同的行,在oracle中表结构相同

  • 本文关键字:结构 oracle 数据 更新 database oracle plsql rdbms
  • 更新时间 :
  • 英文 :


基本上我有两个表几乎46列,现在我想要一些PL/SQL脚本,可以更新行,如果发现不相等从源表a到表B(需要更新),有一个主键的基础上比较将发生,更新后,如果发现不相等。

可以使用MERGE

假设您需要更新所有列,如果PK不匹配,那么这是一个通用语法:

MERGE INTO table_b
USING 
(
  SELECT column1, ... column48
  FROM table_a
) a ON (b.pk = a.pk)
WHEN NOT MATCHED THEN UPDATE 
    SET a.column1 = b.column1,
        .....
        a.column46 = b.column46;

通过使用MERGE,我得到了满足我的问题中提到的要求的正确答案。

MERGE INTO TABLE_A 
USING 
(
    SELECT * FROM TABLE_B
) T 
ON 
(
    TABLE_A.PK=TABLE_B.PK
)
WHEN MATCHED THEN UPDATE 
    SET TABLE_A.COL1 = T.COL1,
        ...
        TABLE_A COL46 = T.COL46;

相关内容

  • 没有找到相关文章

最新更新