У меня есть список 100k идентификаторов в файле. Я хочу, чтобы перебирать эти идентификаторы:Вставить или обновить таблицу
для каждого id
, проверьте id
в таблице:
- Если, обновить его
updated_date
флаг - Если нет, добавить новую запись
(id, updated_date)
Я исследовал и нашел статью MERGE
. Недостатком является то, что MERGE
требует, чтобы идентификаторы находились в таблице. Мне разрешено создавать временную таблицу, если это необходимо.
Можно ли указать мне направление вправо? Это должен быть сценарий, который можно запустить в моей базе данных, а не в коде.
merge into MyTable x
using ('111', '222', all my ids) b
on (x.id = b.id)
when not matched then
insert (id, updated_date) values (b.id, sysdate)
when matched then
update set x.updated_date = sysdate;
EDIT: Теперь я могу использовать временную таблицу, если это мой единственный вариант.
Привет, создайте внешнюю таблицу с этим файлом длиной 100 КБ. Затем запросите эту внешнюю таблицу в использовании предложения вашего оператора слияния и сравните с идентификатором mytable. – Buddi