Проблемы с файлами Delimeter

У меня есть плоский файл с не фиксированной структурой, как

 name,phone_num,Address
 bob,8888,2nd main,5th floor,avenue road

Здесь последний столбец Address имеет значение 2nd main,5th floor,avenue road но так как тот же разделитель , используется для разделения столбцов, и я не понимаю, как обрабатывать то же самое.

структура плоского файла может меняться от файла к файлу. Как обрабатывать такие плоские файлы при импорте с помощью Informatica or SQL * Loader or UTL Files

У меня не будет никакого доступа к плоскому файлу, просто я должен прочитать данные из него, но я не могу редактировать данные в плоском файле.

3 ответа

Решение

Использование SQLLoader

load data
append
into table schema.table
fields terminated by '~'
trailing nullcols
(
   line       BOUNDFILLER,
   name       "regexp_substr(:line, '^[^,]+')",
   phone_num  "regexp_substr(:line, '[^,]+', 1, 2)",
   Address    "regexp_replace(:line, '^.*?,.*?,')"
)

Вам нужно изменить исходный файл, чтобы заключить поля в escape-символ, например:

name,phone_num,Address
 bob,8888,^2nd main,5th floor,avenue road^

тогда в sql-loader вы бы положили:

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '^'

просто выберите разделитель, который обычно не отображается в ваших данных.

Если вы можете получить исходные данные, заключенные в двойные кавычки (или любые другие кавычки), вы можете использовать опцию "Необязательные кавычки" в Informatica при чтении из плоского файла.

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