仅当数据发生更改时才应执行更新查询,否则不要在Oracle中执行更新

仅当数据发生更改时才应执行更新查询,否则不要在Oracle中执行更新,oracle,Oracle,我正在使用oracle DB,我有4列,但在更新列之前,我需要检查这些列是否是数据中的任何新更改,然后我只需要执行更新,否则我不需要执行更新,请建议如何在oracle中执行此操作 建议一些示例查询您可以使用MERGE语句。 仅适用于更新: --无不匹配子句,仅更新 MERGE INTO test1 a USING all_objects b ON (a.object_id = b.object_id and a.status <> b.status) WHEN MA

我正在使用oracle DB,我有4列,但在更新列之前,我需要检查这些列是否是数据中的任何新更改,然后我只需要执行更新,否则我不需要执行更新,请建议如何在oracle中执行此操作


建议一些示例查询

您可以使用MERGE语句。

仅适用于更新:

--无不匹配子句,仅更新

MERGE INTO test1 a
  USING all_objects b
    ON (a.object_id = b.object_id and a.status <> b.status)
  WHEN MATCHED THEN
    UPDATE SET a.status = b.status;
合并到test1a中
使用所有_对象b
打开(a.object\u id=b.object\u id和a.status b.status)
当匹配时
更新集合a.status=b.status;

使用
merge
语句。我有表名TB\u PTR\u的详细信息,需要检查数据是否有任何更改,然后才需要合并。我需要比较的列是ForcastDuration、ForecastEndDate、ActualStart和Autual End。请建议我如何为此编写查询。请推荐此表的样本我的表名:TB\U PTR\U详细信息,MyColumn是ForcastDuration和ForcastEndDate。我需要检查是否有任何一个有变化,然后只有我需要更新。请建议一些查询以检查这些或条件