Импортировать файл с разделителями со значениями полей, содержащими экранированный разделитель

С учетом файла с разделителями в следующем формате

  • поля, разделенные символом трубы |
  • текстовые поля без кавычек
  • некоторые значения текстового поля содержат экранированный канал \|, экранированный перевод строки \\n или сбежал возврат каретки \\r
1| текст, содержащий трубу \| характер |3
                           ^^^

какая правильная комбинация pgloader варианты могут быть успешно загрузить этот файл?

Я старался

pgloader --type csv --field "field1,field2,field3" \
--with "поля заканчиваются на '|'" \
--с "поля не закрыты" \
путь / к / файлу.csv \
PostgreSQL:// пользователь @ хост: порт / имя_бд имя_таблица =schema.table

Который, очевидно, не работал для меня, как pgloader видит четыре поля вместо трех.

1 ответ

Вы должны указать escape-символ, потому что по умолчанию это двойная кавычка.

Попробуйте следующую команду:

pgloader --type csv \
         --field "field1, field2, field3" \
         --with "поля заканчиваются на '|'" \
         --с "полями, экранированными '\'" \
         путь / к / файлу.csv \
         PostgreSQL:// пользователь @ хост: порт / имя_бд имя_таблица =schema.table
Другие вопросы по тегам