sql >> Base de Datos >  >> RDS >> PostgreSQL

Error de PG COPY:sintaxis de entrada no válida para entero

ERROR:sintaxis de entrada no válida para entero:""

"" no es un entero válido. PostgreSQL acepta sin comillas campos en blanco como nulos por defecto en CSV, pero "" sería como escribir:

SELECT ''::integer;

y fallan por la misma razón.

Si desea trabajar con CSV que tiene cosas como cadenas vacías entrecomilladas para enteros nulos, deberá enviarlo a PostgreSQL a través de un preprocesador que puede mejorarlo un poco. La entrada CSV de PostgreSQL no comprende todos los posibles abusos extraños y maravillosos de CSV.

Las opciones incluyen:

  • Cargándolo en una hoja de cálculo y exportando el mismo CSV;
  • Uso de Python csv módulo, Perl Text::CSV , etc. para preprocesarlo;
  • Usando Perl/Python/lo que sea para cargar el CSV e insertarlo directamente en la base de datos
  • Utilizar una herramienta ETL como CloverETL, Talend Studio o Pentaho Kettle