Eu uso o seguinte para carregar dados no postgres
\copy tab FROM /tmp/file DELIMITER E'\t' QUOTE E'\b' NULL AS '\N' CSV
Normalmente eu seleciono os dados de um banco de dados de origem
echo "select * from tab" | mysql --batch --quick --skip-column-names .... > /tmp/file
Gera um arquivo com campos delimitadores de tabulação. Funciona bem na maior parte. Até eu tentar importar coluna de texto de várias linhas. O erro aparece:
ERROR: unquoted carriage return found in data
Alguma recomendação de como superar isso?
O comando mysql que você mostra parece (experimentalmente, não do conhecimento real) gerar uma saída compatível com o formato TEXT do PostgreSQL, não o formato CSV. As novas linhas são representadas por dois caracteres
\n
, tabulações por\t
e barras invertidas literais por\\
.Então tente importá-lo nesse formato, que é o padrão: