Как экранировать символ вложения в файле данных SQL Loader? - PullRequest
1 голос
/ 19 сентября 2009

У меня есть файл управления SQL * Loader, строка которого выглядит примерно так:

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'

Обычно, я бы использовал кавычку, но это, кажется, разрушает подсветку синтаксиса python в emacs, если используется внутри многострочной строки. Проблема в том, что мы загружаем столбец ADDRESS_LINE_2, в который загружаются только 7 000 записей из миллиона, потому что они имеют такие строки:

... (другие столбцы), кв. № 2, (другие столбцы) ...

Что, конечно, вызывает ошибки. Есть ли способ убежать от вмещающего персонажа, чтобы этого не произошло? Или мне просто нужно выбрать лучшего вмещающего персонажа?

Я просмотрел документацию, но, похоже, не нашел ответа на этот вопрос.

Ответы [ 2 ]

5 голосов
/ 19 сентября 2009

Я нашел это ...

Если два символа разделителя встречаются рядом друг с другом, в значении данных используется единственное вхождение символа разделителя. Например, «НЕ» хранится как «НЕ». Однако, если поле состоит только из двух символов-разделителей, его значение равно нулю.

Ссылка на список полей

0 голосов
/ 21 декабря 2013

К сожалению, SqlLoader вычисляет оба вхождения разделителя при проверке максимальной длины поля. Например, DON''T будет отклонено в поле CHAR(5) с ORA-12899: value too large for column blah.blah2 (actual: 6, maximum: 5). По крайней мере, в моем 11gR2 . Не пробовал в других версиях ....

...