Oracle合并语句和源/目标条件

时间:2018-02-17 15:28:28

标签: sql sql-server oracle merge dml

我需要在Oracle中执行MERGE,但我被卡住了。

在SQL Server中,我总是使用BY SOURCEBY TARGET条件来检查记录的存在位置,然后采取措施。

我有点困惑,因为我不知道如何在PL / SQL中实现相同的功能。 我需要在两个表(MERGEcustomers)上执行customers_stage

  • 如果客户表中不存在记录 - 则插入。
  • 如果记录同时退出 - 则更新。
  • 如果customers_stage中不存在该记录 - 则删除。

在SQL Server中,它看起来像这样:

MERGE INTO dbo.Customers AS target
USING dbo.Customers_stage AS source ON target.ID = source.ExternalID

WHEN NOT MATCHED BY TARGET 
   THEN 
      INSERT

WHEN MATCHED 
   THEN
      UPDATE

WHEN NOT MATCHED BY SOURCE 
   THEN
      DELETE

如何在Oracle中实现相同的功能?我使用SQL Developer。

非常感谢。

1 个答案:

答案 0 :(得分:1)

在Oracle中类似:

point A: [0, 20] / root[sqr(0) + sqr(20)]= [(0 / 20), (20 / 20)] = [0, 1]