Errore PostgreSQL: invalid input syntax for type

ERROR:  invalid input syntax for type integer: "abc"

Un valore testuale doveva essere convertito in uno tipizzato — integer, uuid, date, numeric — e non è stato interpretabile. Il messaggio riporta tra virgolette il valore incriminato, che di solito identifica la fonte immediatamente: una riga di header, una stringa vuota, o dati mai validati.

Cosa significa questo errore

Scatta ovunque il testo incontri un tipo: cast espliciti ('abc'::int), parametri bindati come testo, COPY che legge un file, o conversioni implicite nei confronti. Nota cosa non è: un problema di NULL (il NULL fa il cast a qualsiasi cosa senza problemi) — è un valore che esiste ed è malformato per il tipo di destinazione. La stringa vuota è il classico: ''::int fallisce, perché vuoto non è zero.

Cause comuni

Come diagnosticarlo

Come risolverlo