У меня есть процедура, в которой он выбирает данные из таблицы и вставляет в другую. Пыль - это процедура.Oracle для обновления и текущего
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
, но я смущен, где его использовать. Какие-либо предложения?