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, PerlText::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