我有一個過程,它從一個表中選擇數據並插入到另一個。貝婁是程序。甲骨文更新和當前的
CREATE OR REPLACE PROCEDURE "CUSTOMER_INCREMENTAL" (
IS
BEGIN
INSERT INTO NDB_AML_CUSTOMER
(ID, TITLE,...)
SELECT ID, TITLE,...
FROM NDB_CUSTOMER_NEW
WHERE DATE_TIME > (SELECT RUN_DATE FROM CHECK_POINT WHERE TABLE_NAME = 'NDB_CUSTOMER_NEW');
UPDATE CHECK_POINT SET RUN_DATE = SYSDATE WHERE TABLE_NAME = 'NDB_CUSTOMER_NEW';
COMMIT;
END;
/
在插入發生在12:41:08的情況下,它將選擇源表中存在該點的所有記錄。如果更新語句在12:41:10執行,那麼下一次運行將從那時開始。並且隨着DATE_TIME
12:41:09添加的任何記錄,那麼這些記錄將不會在下一次運行中被選中。
我研究了關於For Update
& Current of
但我很困惑在哪裏使用它。有什麼建議麼?