Errori di caricamento di caratteri multibyte - Amazon Redshift

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 CHAR dati accettano solo UTF -8 caratteri a byte singolo, fino al valore di byte 127 o 7F hex, che è anche il set di caratteri. ASCII VARCHARle colonne accettano UTF -8 caratteri multibyte, fino a un massimo di quattro byte. Per ulteriori informazioni, consulta Tipi di carattere.

Se una riga dei 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 di log di ERRORS sistema STL _ LOAD _ con il numero di errore 1220. Il REASON campo ERR _ 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 UTF -8 caratteri non validi, specificare l'ACCEPTINVCHARSopzione con il COPY comando. Se l'ACCEPTINVCHARSopzione è impostata, il carattere specificato sostituisce il punto di codice. Se l'ACCEPTINVCHARSopzione non è impostata, Amazon Redshift accetta i caratteri come -8 validiUTF. Per ulteriori informazioni, consulta ACCEPTINVCHARS.

Il seguente elenco di punti di codice è valido UTF -8, COPY le operazioni non restituiscono un errore se l'ACCEPTINVCHARSopzione 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, 0x10FFFE

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

L'esempio seguente mostra il motivo dell'errore quando si COPY tenta di caricare UTF -8 caratteri e0 a1 c7a4 in una CHAR colonna.

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

Se l'errore è correlato a un tipo di VARCHAR dati, il motivo dell'errore include un codice di errore e la sequenza esadecimale UTF -8 non valida. L'esempio seguente mostra il motivo dell'errore quando si COPY tenta di caricare UTF -8 a4 in un VARCHAR campo.

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

La tabella seguente elenca le descrizioni e le soluzioni alternative suggerite per VARCHAR gli errori di caricamento. Se si verifica uno di questi errori, sostituite il carattere con una sequenza di codici UTF -8 valida o rimuovete il carattere.

Codice di errore Descrizione
1 La sequenza di UTF -8 byte supera il massimo di quattro byte supportato da. VARCHAR
2 La sequenza a UTF -8 byte è incompleta. COPYnon 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 consentito. 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 carattere UTF -8 è riservato come surrogato. I punti di codice surrogati (da U+D800 a DFFF U+) non sono validi.
8 La sequenza di byte supera il massimo di -8 punti di codice. UTF
9 La sequenza a UTF -8 byte non ha un punto di codice corrispondente.