All Products
Search
Document Center

PolarDB:Fungsi konversi karakter full-width dan half-width (TO_SINGLE_BYTE dan TO_MULTI_BYTE)

Last Updated:Mar 29, 2026

PolarDB untuk PostgreSQL (Kompatibel dengan Oracle) mendukung fungsi TO_SINGLE_BYTE dan TO_MULTI_BYTE yang kompatibel dengan Oracle melalui ekstensi polar_to_single_byte. Fungsi TO_SINGLE_BYTE mengonversi karakter multibyte (seperti angka dan huruf full-width) ke padanan single-byte-nya, sedangkan fungsi TO_MULTI_BYTE melakukan sebaliknya. Fungsi-fungsi ini bukan bagian dari PostgreSQL standar; keduanya disediakan sebagai ekstensi untuk menjaga kompatibilitas dengan Oracle.

Prasyarat

Ketersediaan ekstensi ini bergantung pada tanggal pembuatan kluster Anda:

  • Kluster yang dibuat pada atau setelah 30 Maret 2020: Ekstensi dibuat secara otomatis saat Anda membuat database. Tidak diperlukan langkah tambahan.

  • Kluster yang dibuat sebelum 30 Maret 2020: Ekstensi tidak dibuat secara otomatis. Setelah membuat database, jalankan pernyataan berikut untuk menginstalnya:

    CREATE EXTENSION polar_to_single_byte;

Untuk spesifikasi fungsi Oracle asli, lihat referensi TO_SINGLE_BYTE dan TO_MULTI_BYTE dalam dokumentasi Oracle.

Tipe data yang didukung

Kedua fungsi menerima tipe input berikut dan mengembalikan tipe yang sama dengan inputnya.

FungsiTipe inputTipe output
TO_SINGLE_BYTECHARCHAR
TO_SINGLE_BYTECHARACTER VARYINGCHARACTER VARYING
TO_SINGLE_BYTETEXTTEXT
TO_MULTI_BYTECHARCHAR
TO_MULTI_BYTECHARACTER VARYINGCHARACTER VARYING
TO_MULTI_BYTETEXTTEXT

Contoh

TO_SINGLE_BYTE

Konversi string full-width ke ASCII:

SELECT to_single_byte('123$test');
 to_single_byte
----------------
 123$test
(1 row)

TO_MULTI_BYTE

Konversi string ASCII ke full-width:

SELECT to_multi_byte('123$test');
  to_multi_byte
------------------
 123$test
(1 row)