Kesalahan pemuatan karakter multibyte - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kesalahan pemuatan karakter multibyte

Kolom dengan tipe CHAR data hanya menerima karakter single-byte UTF -8, hingga nilai byte 127, atau 7F hex, yang juga merupakan kumpulan karakter. ASCII VARCHARkolom menerima multibyte UTF -8 karakter, hingga maksimal empat byte. Untuk informasi selengkapnya, lihat Jenis karakter.

Jika baris dalam data pemuatan Anda berisi karakter yang tidak valid untuk tipe data kolom, COPY mengembalikan kesalahan dan mencatat baris di tabel log ERRORS sistem STL LOAD _ _ dengan nomor kesalahan 1220. REASONBidang ERR _ mencakup urutan byte, dalam hex, untuk karakter yang tidak valid.

Alternatif untuk memperbaiki karakter yang tidak valid dalam data pemuatan Anda adalah dengan mengganti karakter yang tidak valid selama proses pemuatan. Untuk mengganti karakter UTF -8 yang tidak valid, tentukan ACCEPTINVCHARS opsi dengan COPY perintah. Jika ACCEPTINVCHARS opsi diatur, karakter yang Anda tentukan menggantikan titik kode. Jika ACCEPTINVCHARS opsi tidak disetel, Amazon Redshift menerima karakter sebagai valid -8. UTF Untuk informasi selengkapnya, lihat ACCEPTINVCHARS.

Daftar poin kode berikut valid UTF -8, COPY operasi tidak mengembalikan kesalahan jika ACCEPTINVCHARS opsi tidak disetel. Namun, poin kode ini bukan karakter yang valid. Anda dapat menggunakan ACCEPTINVCHARS opsi untuk mengganti titik kode dengan karakter yang Anda tentukan. Poin kode ini mencakup rentang nilai dari 0xFDD0 ke 0xFDEF dan nilai hingga0x10FFFF, diakhiri dengan FFFE atauFFFF:

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

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

Contoh berikut menunjukkan alasan kesalahan ketika COPY mencoba untuk memuat UTF -8 karakter e0 a1 c7a4 ke dalam CHAR kolom.

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

Jika kesalahan terkait dengan tipe VARCHAR data, alasan kesalahan mencakup kode kesalahan serta urutan UTF -8 hex yang tidak valid. Contoh berikut menunjukkan alasan kesalahan saat COPY mencoba memuat UTF -8 a4 ke dalam VARCHAR bidang.

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

Tabel berikut mencantumkan deskripsi dan solusi yang disarankan untuk kesalahan pemuatan. VARCHAR Jika salah satu kesalahan ini terjadi, ganti karakter dengan urutan kode UTF -8 yang valid atau hapus karakter.

Kode kesalahan Deskripsi
1 Urutan UTF -8 byte melebihi maksimum empat byte yang didukung oleh. VARCHAR
2 Urutan UTF -8 byte tidak lengkap. COPYtidak menemukan jumlah byte lanjutan yang diharapkan untuk karakter multibyte sebelum akhir string.
3 Karakter UTF -8 single-byte berada di luar jangkauan. Byte awal tidak boleh 254, 255 atau karakter apa pun antara 128 dan 191 (inklusif).
4 Nilai byte trailing dalam urutan byte berada di luar jangkauan. Byte kelanjutan harus antara 128 dan 191 (inklusif).
5 Karakter UTF -8 dicadangkan sebagai pengganti. Poin kode pengganti (U+D800 hingga U +DFFF) tidak valid.
8 Urutan byte melebihi titik kode maksimum UTF -8.
9 Urutan UTF -8 byte tidak memiliki titik kode yang cocok.