我是ODI的新手,在尝试使用过程删除数据时面临不同的问题。
我遵循的步骤:
SELECT DOC_ID FROM SOURCE_TAB
TARGET_TAB
中删除不匹配的数据。
DELETE FROM TARGET_TAB WHERE TRAN_ID NOT IN (:DOC_ID)
来源表:SOURCE_TAB
DOC_ID NUMBER(10);
====
10
20
30
40
50
目标表:TARGET_TAB
TRAN_ID NUMBER(10);
====
10
20
30
40
50
注意:源表和目标表数据是销售。它不应该删除任何数据。
答案 0 :(得分:0)
对于此方法,ODI使用逐行方法。对于来自源的每个DOC_ID,它在目标
上执行命令DELETE FROM TARGET_TAB WHERE TRAN_ID NOT IN (10)
DELETE FROM TARGET_TAB WHERE TRAN_ID NOT IN (20)
.....
因此删除所有数据
如果源表和目标表位于同一数据库中,请使用单个查询删除数据。
DELETE FROM TARGET_TAB WHERE TRAN_ID NOT IN (SELECT DOC_ID FROM SOURCE_TAB)