Как сохранить двойные кавычки в столбце при загрузке файла с помощью SQL Loader - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь загрузить текстовый файл с разделителем | (pipe) в таблицу Oracle с помощью утилиты загрузчика SQL. Все поля заключены в двойные кавычки. Но в файлах есть некоторые текстовые поля, которые имеют дополнительные двойные кавычки в дополнение к вложенным, которые необходимо сохранить. Все столбцы таблицы определены как VARCHAR. Вот параметры управления, которые я использую

OPTIONS (DIRECT=TRUE,SKIP=1)
LOAD DATA
CHARACTERSET UTF8
INFILE aaa.txt
APPEND INTO TABLE info_table
FIELDS TERMINATED BY "|"
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS

Это мой пример файла

"1"|"High "Gold Tip" Tea, 600"
"2"|""10000 Beers, Wines & Spirits""

Таблица должна быть загружена со следующими данными

Запись 1:

Column 1 - 1
Column 2 - High "Gold Tip" Tea, 600

Запись 2:

Column 1 - 2
Column 2 - 10000 Beers, Wines & Spirits

1 Ответ

0 голосов
/ 28 апреля 2020

К сожалению, особо нечего сказать.

Формат файла плохой. Вы не можете заключать значения в символы, которые используются в этих полях сами. Поскольку данные содержат двойные кавычки, вам придется дополнительно заключать значения во что-то другое, а не в двойные кавычки.

Однако , поскольку вы уже разбили значения с помощью символов канала что вам нужно двойные кавычки, чтобы опционально заключить эти значения поля? Опустите их из файла, и у вас не возникнет никаких проблем (такого рода, конечно; кто знает, что может произойти дальше, но это уже другая история).

...