Загрузка нескольких сцепленных CSV-файлов в Qracle с помощью SQLLDR

У меня есть дамп нескольких таблиц Postgresql в отдельном CSV-файле, который я хочу импортировать в базу данных Oracle с соответствующей схемой. Я нашел несколько сообщений о том, как распределить данные из одной таблицы CSV в несколько таблиц Oracle, но моя проблема заключается в нескольких разных таблицах CVS в одном файле.

Можно ли указать разделители таблиц или как-то пометить новые таблицы в контрольном файле SQLLDR, или мне нужно разделить файл вручную перед передачей его в SQLLDR?

1 ответ

Решение

Это зависит от ваших данных. Как определить, для какой таблицы предназначена строка? Если вы можете определить, какая таблица основана на данных в строке, то это довольно легко сделать с помощью WHEN.

LOAD DATA
  INFILE bunchotables.dat
INTO TABLE foo WHEN somecol = 'pick me, pick me' (
  ...column defs...
)
INTO TABLE bar WHEN somecol = 'leave me alone' (
  ... column defs
)

Если у вас есть какая-то строка заголовка, которая определяет целевую таблицу, то вам придется разделить ее перед использованием другой утилиты.

Другие вопросы по тегам