Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fehler beim Laden von Multibyte-Zeichen
Spalten mit einem CHAR-Datentyp akzeptieren nur UTF-8-Einzelbyte-Zeichen bis zum Bytewert 127 oder 7F Hex. Dies entspricht dem ASCII-Zeichensatz. VARCHAR-Spalten akzeptieren UTF-8-Multibyte-Zeichen bis zu einer Länge von vier Bytes. Weitere Informationen finden Sie unter Zeichentypen.
Wenn eine Zeile in den geladenen Daten ein für den Datentyp der Spalte ungültiges Zeichen enthält, gibt COPY einen Fehler zurück und protokolliert eine Zeile mit der Fehlernummer 1220 in der Systemprotokolltabelle STL_LOAD_ERRORS. Das Feld ERR_REASON enthält die Byte-Folge in Hex für das ungültige Zeichen.
Alternativ zur Korrektur von ungültigen Zeichen in den geladenen Daten können Sie die ungültigen Zeichen auch während des Ladeprozesses ersetzen. Um ungültige UTF-8-Zeichen zu ersetzen, geben Sie mit dem COPY-Befehl die Option ACCEPTINVCHARS an. Wenn die Option ACCEPTINVCHARS festgelegt ist, ersetzt das von Ihnen angegebene Zeichen den Codepunkt. Wenn die Option ACCEPTINVCHARS nicht festgelegt ist, akzeptiert Amazon Redshift die Zeichen als gültiges UTF-8. Weitere Informationen finden Sie unter ACCEPTINVCHARS.
Die folgende Liste von Codepunkten ist gültiges UTF-8, COPY-Operationen geben keinen Fehler zurück, wenn die ACCEPTINVCHARS-Option nicht festgelegt wurde. Diese Codepunkte sind jedoch keine gültigen Zeichen. Sie können die Option ACCEPTINVCHARS verwenden, um einen Codepunkt durch ein von Ihnen festgelegtes Zeichen zu ersetzen. Diese Codepunkte beinhalten den Wertebereich von 0xFDD0
bis 0xFDEF
und Werte bis 0x10FFFF
, endend mit FFFE
oder FFFF
:
0xFFFE
,0x1FFFE
,0x2FFFE
, …,0xFFFFE
,0x10FFFE
0xFFFF
,0x1FFFF
,0x2FFFF
, …,0xFFFFF
,0x10FFFF
Im folgenden Beispiel ist der Fehlergrund angegeben, wenn COPY versucht, das UTF-8-Zeichen e0 a1 c7a4
in eine CHAR-Spalte zu laden.
Multibyte character not supported for CHAR (Hint: Try using VARCHAR). Invalid char: e0 a1 c7a4
Wenn sich der Fehler auf einen VARCHAR-Datentyp bezieht, beinhaltet der Fehlergrund einen Fehlercode sowie die ungültige UTF-8-Hex-Sequenz. Im folgenden Beispiel ist der Fehlergrund angegeben, wenn COPY versucht, das UTF-8-Zeichen a4
in ein VARCHAR-Feld zu laden:
String contains invalid or unsupported UTF-8 codepoints. Bad UTF-8 hex sequence: a4 (error 3)
In der folgenden Tabelle werden die Beschreibungen und vorgeschlagenen Umgehungen für VARCHAR-Ladefehler aufgelistet. Wenn einer dieser Fehler auftritt, ersetzen Sie das Zeichen durch eine gültige UTF-8-Codefolge oder entfernen das Zeichen.
Fehlercode | Beschreibung |
---|---|
1 | Die UTF-8-Bytefolge überschreitet das Maximum von vier Bytes, das von VARCHAR unterstützt wird. |
2 | Die UTF-8-Bytefolge ist unvollständig. COPY konnte nicht die erwartete Anzahl von Fortsetzungsbytes für ein Multibyte-Zeichen vor dem Ende der Zeichenfolge finden. |
3 | Das UTF-8-Einzelbyte-Zeichen befindet sich außerhalb des Bereichs. Das Startbyte darf nicht 254, 255 oder ein Zeichen zwischen 128 und 191 (einschließlich) sein. |
4 | Der Wert des Bytes am Ende der Bytefolge befindet sich außerhalb des Bereichs. Das Fortsetzungsbyte muss zwischen 128 und 191 (einschließlich) liegen. |
5 | Das UTF-8-Zeichen ist als Surrogat reserviert. Surrogat-Codepunkte (U+D800 bis U+DFFF) sind nicht gültig. |
8 | Die Bytefolge überschreitet den maximal zulässigen UTF-8-Codepunkt. |
9 | Die UTF-8-Bytefolge besitzt keinen übereinstimmenden Codepunkt. |