Erreurs de chargement de caractères multioctets - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Erreurs de chargement de caractères multioctets

Les colonnes comportant un type de CHAR données n'acceptent que les caractères codés sur un octet de UTF -8, jusqu'à 127 octets, ou 7F hexadécimal, qui est également le jeu de caractères. ASCII VARCHARles colonnes acceptent UTF 8 caractères multioctets, jusqu'à un maximum de quatre octets. Pour de plus amples informations, veuillez consulter Types caractères.

Si une ligne de vos données de chargement contient un caractère non valide pour le type de données de colonne, COPY renvoie une erreur et enregistre une ligne dans le journal du ERRORS système STL LOAD _ _ avec le numéro d'erreur 1220. Le REASON champ ERR _ inclut la séquence d'octets, en hexadécimal, pour le caractère non valide.

Au lieu de corriger les caractères non valides dans vos données de chargement, vous pouvez également remplacer les caractères non valides pendant le processus de chargement. Pour remplacer les caractères UTF -8 non valides, spécifiez l'ACCEPTINVCHARSoption à l'aide de la COPY commande. Si l'ACCEPTINVCHARSoption est activée, le caractère que vous spécifiez remplace le point de code. Si l'ACCEPTINVCHARSoption n'est pas définie, Amazon Redshift accepte que les caractères -8 soient validesUTF. Pour de plus amples informations, veuillez consulter ACCEPTINVCHARS.

La liste de points de code suivante est valide : UTF -8, les COPY opérations ne renvoient pas d'erreur si l'ACCEPTINVCHARSoption n'est pas définie. Toutefois, ces points de code ne sont pas des caractères valides. Vous pouvez utiliser l’option ACCEPTINVCHARS pour remplacer un point de code par un caractère que vous spécifiez. Ces points de code incluent la plage de valeurs de 0xFDD0 à 0xFDEF et des valeurs allant jusqu’à 0x10FFFF, se terminant par FFFE ou FFFF :

  • 0xFFFE, 0x1FFFE, 0x2FFFE, …, 0xFFFFE, 0x10FFFE

  • 0xFFFF, 0x1FFFF, 0x2FFFF, …, 0xFFFFF, 0x10FFFF

L'exemple suivant montre la raison de l'erreur lors d'une COPY tentative de chargement de UTF -8 caractères e0 a1 c7a4 dans une CHAR colonne.

Multibyte character not supported for CHAR (Hint: Try using VARCHAR). Invalid char: e0 a1 c7a4

Si l'erreur est liée à un type de VARCHAR données, la raison de l'erreur inclut un code d'erreur ainsi que la séquence hexadécimale UTF -8 non valide. L'exemple suivant montre la raison de l'erreur lors d'une COPY tentative de chargement de UTF -8 a4 dans un VARCHAR champ.

String contains invalid or unsupported UTF-8 codepoints. Bad UTF-8 hex sequence: a4 (error 3)

Le tableau suivant répertorie les descriptions et les solutions proposées pour contourner les erreurs de VARCHAR chargement. Si l'une de ces erreurs se produit, remplacez le caractère par une séquence de code UTF -8 valide ou supprimez le caractère.

Code d’erreur Description
1 La séquence de UTF -8 octets dépasse le maximum de quatre octets pris en charge par. VARCHAR
2 La séquence UTF de -8 octets est incomplète. COPYn'a pas trouvé le nombre attendu d'octets de suite pour un caractère multioctet avant la fin de la chaîne.
3 Le caractère à un octet UTF -8 est hors de portée. L’octet de départ ne doit pas être 254, 255 ou tout autre caractère entre 128 et 191 (inclus).
4 La valeur de l’octet de fin de la séquence d’octets est hors de portée. L’octet de continuation doit être compris entre 128 et 191 (inclus).
5 Le caractère UTF -8 est réservé comme substitut. Les points de code de substitution (U+D800 à U+) ne sont pas valides. DFFF
8 La séquence d'octets dépasse le maximum de UTF -8 points de code.
9 La séquence de UTF -8 octets ne possède pas de point de code correspondant.