2009-06-24 2 views
0

FIRST: Да, я знаю о CONCATENATE и CONTINUEIF, но я, возможно, не был достаточно умен, чтобы понять документацию. Я не «понимаю», как они решают мою проблему. Спасибо ...Как мне избежать кавычек и разрывов строк для импорта Oracle SQLLoader (sqlldr)?

Я хочу, чтобы создал файл для импорта в базу данных Oracle через sqlldr.

Столбцы должны быть разделены символом «~» (не спрашивайте.) При создании файла файла у меня есть несколько проблем, связанных с тем, как работает sqlldr в отношении котировок и новых строк.

Если простая строка содержит значения столбцов:

One, Hello~World I "Like" you, and Three 

Как я должен это выход в файл? Моей первой догадка

One~"Hello~World I "Like" you"~Three 

Я предполагаю, что это было бы легко импортировать с ПОЛЕМ TERMINATED BY «~» OPTIONALLY ENCLOSED BY «"», указанными в файле CTL. То, что я не знаю, как обращаться в кавычки вокруг Как и когда я создаю файл Если те, дополнительно спасся Как

Дополнительный бонус Вопрос:.?. поля могут содержать строки-брейки Если выписал «сырой» она превратится в

one~Line 
Break~three 

Есть ли опция в файле CTL, что я могут использовать, чтобы «сшить» их обратно вместе? Разрыв может происходить в разных столбцах и может быть более одного разрыва на запись или столбец.

Заранее благодарен!

ответ

1

После некоторых экспериментов это то, что я обнаружил:

При использовании

FIELDS TERMINATED BY "~" OPTIONALLY ENCLOSED BY '"' 

в файле CTL и структуру таблиц

key:number, msg:varchar2 

правильный путь для обработки котировки и разделители являются

1~Hello World 
2~"Hello~World" 
3~"Hello ""World""" 
4~"Hello~""World""" 

Итак, если данные содержат разделитель, укажите все значение и замените кавычки в значении двумя кавычками.

Что касается новых строк, я собираюсь спросить об этом в другом вопросе.

 Смежные вопросы

  • Нет связанных вопросов^_^