PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro PG COPY:sintaxe de entrada inválida para inteiro


ERRO:sintaxe de entrada inválida para inteiro:""

"" não é um inteiro válido. PostgreSQL aceita sem aspas campos em branco como nulos por padrão em CSV, mas "" seria como escrever:
SELECT ''::integer;

e falhar pelo mesmo motivo.

Se você quiser lidar com CSV que tem coisas como strings vazias citadas para inteiros nulos, você precisará alimentá-lo ao PostgreSQL por meio de um pré-processador que pode aprimorá-lo um pouco. A entrada CSV do PostgreSQL não entende todos os estranhos e maravilhosos abusos do CSV.

As opções incluem:
  • Carregar em uma planilha e exportar CSV correto;
  • Usando o Python csv módulo, Perl Text::CSV , etc para pré-processá-lo;
  • Usando Perl/Python/whatever para carregar o CSV e inseri-lo diretamente no banco de dados
  • Usando uma ferramenta ETL como CloverETL, Talend Studio ou Pentaho Kettle