Próbuję zaimportować plik rozdzielany tabulatorami do mojej bazy danych PostgreSQL. Jednym z pól w moim pliku jest pole "tytuł", które czasami zawiera rzeczywiste znaki cudzysłowu. Na przykład, mój TSV może wyglądać następująco:Zignorować cudzysłowy podczas importowania pliku CSV do PostgreSQL?
id title
5 Hello/Bleah" Foo
(Tak, nie tylko że znak jeden cytat w tytule).
przy próbie importu pliku do mojej bazy danych:
copy articles from 'articles.tsv' with delimiter E'\t' csv header;
otrzymuję ten błąd, przedstawiających tę linię:
ERROR: unterminated CSV quoted field
Jak mogę rozwiązać ten problem? Cudzysłowy nie są nigdy używane do otaczania całych pól w pliku. Próbowałem copy articles from 'articles.tsv' with delimiter E'\t' escape E'\\' csv header;
, ale pojawia się ten sam błąd w tej samej linii.
Brzmi dość prosto, ale co, jeśli dane CSV zawierają ukośniki odwrotne jako poprawną treść pola? (tak, natknąłem się na to) Domyślny format dla COPY traktuje ukośnik odwrotny jako znak escape, więc musisz użyć COPY z formatem CSV ... –
Nie myślałem o tym. Tak: to ma sens. – wildplasser