Импортировать файл с разделителями со значениями полей, содержащими экранированный разделитель
С учетом файла с разделителями в следующем формате
- поля, разделенные символом трубы
|
- текстовые поля без кавычек
- некоторые значения текстового поля содержат экранированный канал
\|
, экранированный перевод строки\\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