Игнорировать кавычки при импорте файла CSV в PostgreSQL? - PullRequest
10 голосов
/ 11 сентября 2011

Я пытаюсь импортировать файл с разделителями табуляции в мою базу данных PostgreSQL. Одним из полей в моем файле является поле «заголовок», которое иногда содержит фактические кавычки. Например, мой TSV может выглядеть так:

id    title
5     Hello/Bleah" Foo

(Да, в названии есть только одна кавычка.)

Когда я пытаюсь импортировать файл в мою базу данных:

copy articles from 'articles.tsv' with delimiter E'\t' csv header;

Я получаю эту ошибку, ссылаясь на эту строку:

ERROR:  unterminated CSV quoted field

Как мне это исправить? Кавычки никогда не используются, чтобы окружить целые поля в файле. Я пытался copy articles from 'articles.tsv' with delimiter E'\t' escape E'\\' csv header;, но на той же строке я получаю ту же ошибку.

Ответы [ 2 ]

7 голосов
/ 11 сентября 2011

Предполагая, что файл никогда не пытается заключить в кавычки свои поля:

Нужная опция - "с цитатой", см. http://www.postgresql.org/docs/8.2/static/sql-copy.html

К сожалению, я не уверен, как включитьв общем, вне цитаты, одним из ключевых моментов было бы указать символ, который вообще не появляется в вашем файле.

6 голосов
/ 11 сентября 2011

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

copy articles from 'articles.tsv';

делает именно то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...