Comment supprimer des caractères non valides de mes données Amazon Redshift ?

Lecture de 2 minute(s)
0

Mes données Amazon Redshift contiennent des caractères non valides. Comment les supprimer ?

Brève description

Si vos données contiennent des caractères ASCII non imprimables, tels que les caractères nul, d'appel ou d'échappement, vous pouvez avoir des difficultés à récupérer les données ou à les décharger dans Amazon Simple Storage Service (Amazon S3). Par exemple, une chaîne qui contient un caractère nul tel que « abc\0def » est tronquée au niveau de ce caractère, entraînant ainsi des données incomplètes.

Résolution

Utilisez la fonction TRANSLATE (TRADUIRE) pour supprimer les caractères non valides. Dans l'exemple suivant, les données contiennent « abc\u0000def ». La fonction TRANSLATE (TRADUIRE) supprime le caractère nul « \u0000 » et le remplace par une valeur vide, ce qui le supprime de la chaîne :

admin@testrs=# select a,translate(a,chr(0),'') from invalidstring;
   a    | translate 
--------+-----------
 abc    | abcdef
 abcdef | abcdef
(2 rows)

Pour supprimer des caractères non valides spécifiés de toutes les lignes d'une table, exécutez la commande UPDATE (METTRE À JOUR) avec la fonction TRANSLATE (TRADUIRE) comme illustré dans l'exemple suivant :

admin@testrs=# select * from invalidstring;
   a    
--------
 abc
 abcdef
(2 rows)

admin@testrs=# update invalidstring set a=translate(a,chr(0),'') where a ilike '%'||chr(0)||'%';
UPDATE 1
 
admin@testrs=# select * from invalidstring;
   a    
--------
 abcdef
 abcdef
(2 rows)

Informations connexes

Fonction CHR

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans