Мне нужно обновить таблицу из другой таблицы.Добавить еще одно обновление для Merge Into PL SQL trigger
Вот таблица MST_LIST
NAME | VER | FLAG
-----+-----+-----
A |201 |1
B |101 |1
И TMP_LIST обновить предыдущую таблицу
T_NAME | T_VER
-------+-------
A |202
C |101
И я слияние с upsert. Это код, который я создал.
create or replace TRIGGER MST_LIST_TRIG
AFTER INSERT OR UPDATE ON TMP_LIST
FOR EACH ROW
BEGIN
MERGE INTO MST_LIST USING DUAL ON (NAME = :NEW.T_NAME)
WHEN MATCHED THEN UPDATE SET
VER = :NEW.T_VER
WHEN NOT MATCHED THEN INSERT (NAME, VER, FLAG_ACTIVE)
VALUES (:NEW.T_NAME, :NEW.T_VER, 1);
END MST_LIST_TRIG;
Но проблема в том, что мне нужно добавить еще одно обновление
update MST_LIST set FLAG = 0 where NOT EXISTS
(SELECT TMP_LIST.T_NAME FROM TMP_LIST WHERE MST_LIST.NAME = TMP_LIST.T_NAME);
, чтобы получить результат, как это
NAME | VER | FLAG
-----+-----+-----
A |202 |1
B |101 |0
C |101 |1
Я попытался Loop и если, но до сих пор не может получить excpected результат , Пожалуйста, помогите мне. Благодарю.
ой спасибо много сэра. это действительно полезно. –