Проблемы с файлами 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 при чтении из плоского файла.