Amazon Redshift ne prendra plus en charge la création de nouveaux UDFs Python à partir du patch 198. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement jusqu’au 30 juin 2026. Pour plus d’informations, consultez le billet de blog
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 de type CHAR n'acceptent que les UTF-8 caractères codés sur un octet, jusqu'à 127 octets ou 7F hexadécimal, qui est également le jeu de caractères ASCII. Les colonnes VARCHAR acceptent les UTF-8 caractères multioctets, jusqu'à un maximum de quatre octets. Pour de plus amples informations, veuillez consulter Types caractères.
Si, dans vos données de chargement, une ligne contient un caractère non valide pour le type de données de colonne, COPY renvoie une erreur et enregistre une ligne dans la table du journal système STL_LOAD_ERRORS avec le numéro d’erreur 1220. Le champ ERR_REASON comprend 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 UTF-8 caractères non valides, spécifiez l'option ACCEPTINVCHARS à l'aide de la commande COPY. Si l’option ACCEPTINVCHARS est définie, le caractère que vous spécifiez remplace le point de code. Si l'option ACCEPTINVCHARS n'est pas définie, Amazon Redshift considère que les caractères sont valides. UTF-8 Pour de plus amples informations, veuillez consulter ACCEPTINVCHARS.
La liste de points de code suivante est valide UTF-8. Les opérations COPY ne renvoient pas d'erreur si l'option ACCEPTINVCHARS 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,0x10FFFE0xFFFF,0x1FFFF,0x2FFFF, …,0xFFFFF,0x10FFFF
L'exemple suivant montre la raison de l'erreur lorsque COPY tente de charger un UTF-8 caractère e0 a1 c7a4 dans une colonne CHAR.
Multibyte character not supported for CHAR (Hint: Try using VARCHAR). Invalid char: e0 a1 c7a4
Si l'erreur est liée à un type de données VARCHAR, la raison de l'erreur inclut un code d'erreur ainsi que la séquence hexadécimale non valide UTF-8 . L'exemple suivant montre la raison de l'erreur lorsque COPY tente de se charger UTF-8 a4 dans un champ VARCHAR.
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 de contournement suggérées pour les erreurs de chargement VARCHAR. Si l'une de ces erreurs se produit, remplacez le caractère par une séquence de UTF-8 code valide ou supprimez-le.
| Code d’erreur | Description |
|---|---|
| 1 | La séquence d' UTF-8 octets dépasse le maximum de quatre octets pris en charge par VARCHAR. |
| 2 | La séquence d' UTF-8 octets est incomplète. COPY n’a pas trouvé le nombre d’octets de continuation attendu pour un caractère multioctets avant la fin de la chaîne. |
| 3 | Le caractère UTF-8 à un octet 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 UTF-8 personnage est réservé comme substitut. Les points de code de substitution (U+D800 à U+DFFF) ne sont pas valides. |
| 8 | La séquence d'octets dépasse le point de UTF-8 code maximal. |
| 9 | Aucun point de code correspondant n'est associé à la séquence d' UTF-8 octets. |