PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Erreur Postgres lors de l'insertion - ERREUR :séquence d'octets non valide pour l'encodage UTF8 :0x00

PostgreSQL ne prend pas en charge le stockage des caractères NULL (\0x00) dans les champs de texte (ceci est évidemment différent de la valeur NULL de la base de données, qui est entièrement prise en charge).

Source :http://www.postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-UESCAPE

Si vous avez besoin de stocker le caractère NULL, vous devez utiliser un champ bytea - qui devrait stocker tout ce que vous voulez, mais ne prendra pas en charge les opérations de texte dessus.

Étant donné que PostgreSQL ne le prend pas en charge dans les valeurs de texte, il n'y a pas de bon moyen de le faire supprimer. Vous pouvez importer vos données dans bytea et les convertir plus tard en texte à l'aide d'une fonction spéciale (en perl ou quelque chose, peut-être ?), mais il sera probablement plus facile de le faire lors du prétraitement avant de le charger.