Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Errori di caricamento di caratteri multibyte
Le colonne con un tipo di dati CHAR accettano solo UTF-8 caratteri a byte singolo, fino al valore 127 in byte, o esadecimale 7F, che è anche il set di caratteri ASCII. Le colonne VARCHAR accettano caratteri UTF-8 multibyte, fino a un massimo di quattro byte. Per ulteriori informazioni, consulta Tipi di carattere.
Se una riga nei dati di caricamento contiene un carattere non valido per il tipo di dati della colonna, COPY restituisce un errore e registra una riga nella tabella del log di sistema STL_LOAD_ERRORS con il numero di errore 1220. Il campo ERR_REASON include la sequenza di byte, in esadecimale, per il carattere non valido.
Un'alternativa alla correzione di caratteri non validi nei dati di caricamento è la sostituzione dei caratteri non validi durante il processo di caricamento. Per sostituire i UTF-8 caratteri non validi, specificate l'opzione ACCEPTINVCHARS con il comando COPY. Se l'opzione ACCEPTINVCHARS è impostata, il carattere specificato sostituisce il punto codice. Se l'opzione ACCEPTINVCHARS non è impostata, Amazon Redshift accetta i caratteri come validi. UTF-8 Per ulteriori informazioni, consulta ACCEPTINVCHARS.
Il seguente elenco di punti di codice è valido UTF-8, le operazioni COPY non restituiscono un errore se l'opzione ACCEPTINVCHARS non è impostata. Tuttavia, questi punti codice sono caratteri non validi. Puoi utilizzare l'opzione ACCEPTINVCHARS per sostituire un punto di codice con un carattere specificato. Questi punti di codice includono l'intervallo di valori da 0xFDD0 a 0xFDEF e valori fino a 0x10FFFF, terminando con FFFE o FFFF:
0xFFFE,0x1FFFE,0x2FFFE, …,0xFFFFE,0x10FFFE0xFFFF,0x1FFFF,0x2FFFF, …,0xFFFFF,0x10FFFF
L'esempio seguente mostra il motivo dell'errore quando COPY tenta di caricare un UTF-8 carattere e0 a1 c7a4 in una colonna CHAR.
Multibyte character not supported for CHAR (Hint: Try using VARCHAR). Invalid char: e0 a1 c7a4
Se l'errore è correlato a un tipo di dati VARCHAR, il motivo dell'errore include un codice di errore e una sequenza esadecimale non valida UTF-8 . L'esempio seguente mostra il motivo dell'errore quando COPY tenta di caricare UTF-8 a4 in un campo VARCHAR.
String contains invalid or unsupported UTF-8 codepoints. Bad UTF-8 hex sequence: a4 (error 3)
Nella tabella seguente sono elencate le descrizioni e le soluzioni alternative suggerite per gli errori di caricamento VARCHAR. Se si verifica uno di questi errori, sostituisci il carattere con una sequenza di UTF-8 codice valida o rimuovi il carattere.
| Codice di errore | Description |
|---|---|
| 1 | La sequenza di UTF-8 byte supera il numero massimo di quattro byte supportato da VARCHAR. |
| 2 | La sequenza di byte è incompleta. UTF-8 COPY non ha trovato il numero previsto di byte di continuazione per un carattere multibyte prima della fine della stringa. |
| 3 | Il carattere UTF-8 a byte singolo non è compreso nell'intervallo. Il byte iniziale non deve essere 254, 255 o qualsiasi carattere compreso tra 128 e 191 (inclusi). |
| 4 | Il valore del byte finale nella sequenza di byte è fuori dell'intervallo. Il byte di continuazione deve essere compreso tra 128 e 191 (inclusi). |
| 5 | Il UTF-8 personaggio è riservato come surrogato. I punti di codice surrogato (da U+D800 a U+DFFF) non sono validi. |
| 8 | La sequenza di byte supera il punto di codice massimo UTF-8 . |
| 9 | La sequenza di UTF-8 byte non ha un punto di codice corrispondente. |