Как выбрать из другой таблицы во время импорта файла SQLLDR - PullRequest
0 голосов
/ 21 октября 2019

Есть ли способ создать контрольный файл SQLLDR таким образом, чтобы он проверял идентификационный номер перед вставкой данных в другую таблицу, и если идентификатор не совпадает, загрузчик выбрасывает его в файл dicard?

В исходном файле импорта естьстолбец: идентификатор, который включает набор из 8 цифр. Затем у нас есть таблица идентификаторов, где эти 8-значные идентификаторы найдены.

Теперь мне нужно сначала проверить из этой таблицы идентификаторов, совпадают ли идентификаторы в файле или нет. Совпадающие из них будут вставлены в таблицу SETS, а несоответствия закончатся в файле sets.dsc.

Могу ли я использовать WHEN или поместить этот выбор прямо в ID внутри кавычек?

Мы используем Oracle11

1 Ответ

1 голос
/ 21 октября 2019

Почему бы вам не создать ограничение ссылочной целостности ? Если идентификатор не существует в «таблице идентификаторов» (которая является «родительской»), то такая строка не будет загружена из входного файла. Oracle поднимет

ORA-02291: нарушено ограничение целостности - родительский ключ не найден

ошибка.

Я имею в виду, зачем изобретать велосипед?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...