Paket UTL_ENCODE menyediakan metode untuk meng-encode dan mendekode data.
BASE64_ENCODE
Fungsi BASE64_ENCODE mengonversi string RAW atau TEXT ke dalam format Base64. Fungsi ini memiliki dua sintaks berikut:
BASE64_ENCODE(r IN RAW)BASE64_ENCODE(loid IN OID)
Fungsi ini mengembalikan nilai dalam format RAW atau OID.
Parameter
|
Parameter Name |
Description |
|
r |
Menentukan string RAW yang akan dikonversi ke format Base64. |
|
loid |
Menentukan ID objek dari large object yang akan dikonversi ke format Base64. |
Example
Sebelum menjalankan contoh berikut, eksekusi perintah ini untuk menginstruksikan server agar mengabaikan karakter non-printable dan menampilkan nilai BYTEA atau RAW dalam format yang dapat dibaca di layar:
SET bytea_output = escape;
Untuk informasi lebih lanjut, lihat Postgres core documentation.
Anda dapat menggunakan fungsi BASE64_ENCODE untuk mengonversi string ke format Base64. Berikut contohnya:
SELECT UTL_ENCODE.BASE64_ENCODE(CAST ('abc' AS RAW));
Hasil berikut dikembalikan:
base64_encode
---------------
YWJj
(1 row)
BASE64_DECODE
Fungsi BASE64_DECODE mendekode string dalam format Base64 kembali ke nilai aslinya yang sebelumnya di-encode oleh fungsi BASE64_ENCODE. Sintaksnya adalah sebagai berikut:
BASE64_DECODE(r IN RAW)
Fungsi ini mengembalikan nilai dalam format RAW.
Parameters
|
Parameter Name |
Description |
|
r |
String dalam format Base64 yang di-encode oleh fungsi BASE64_ENCODE. |
Example
Sebelum menjalankan contoh berikut, eksekusi perintah ini untuk menginstruksikan server agar mengabaikan karakter non-printable dan menampilkan nilai BYTEA atau RAW dalam format yang dapat dibaca di layar:
SET bytea_output = escape;
Untuk informasi lebih lanjut, lihat Postgres core documentation.
Anda dapat menggunakan fungsi BASE64_DECODE untuk mengonversi string dalam format Base64 ke format RAW:
SELECT UTL_ENCODE.BASE64_DECODE(CAST ('YWJj' AS RAW));
Hasil berikut dikembalikan:
base64_decode
---------------
abc
(1 row)
MIMEHEADER_ENCODE
Fungsi MIMEHEADER_ENCODE mengonversi string ke format header Multipurpose Internet Mail Extensions (MIME), lalu meng-encode string tersebut. Sintaksnya adalah sebagai berikut:
MIMEHEADER_ENCODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN INTEGER DEFAULT NULL)
Fungsi ini mengembalikan nilai dalam format VARCHAR2.
Parameters
|
Parameter Name |
Description |
|
buf |
String yang akan diformat dan di-encode. String ini merupakan nilai VARCHAR2. |
|
encode_charset |
Menentukan set karakter ke mana string dikonversi sebelum diformat dan di-encode. Nilai default-nya adalah NULL. |
|
encoding |
Menentukan jenis encoding yang digunakan saat meng-encode string. Anda dapat menentukan salah satu dari dua jenis encoding berikut:
Catatan
Nilai default-nya adalah encoding Quoted-printable. |
Example
Anda dapat menggunakan fungsi MIMEHEADER_ENCODE untuk meng-encode string. Berikut contohnya:
SELECT UTL_ENCODE.MIMEHEADER_ENCODE('What is the date?') FROM DUAL;
Hasil berikut dikembalikan:
mimeheader_encode
------------------------------
=?UTF8?Q?What is the date??=
(1 row)
MIMEHEADER_DECODE
Fungsi MIMEHEADER_DECODE mendekode nilai yang sebelumnya di-encode oleh fungsi MIMEHEADER_ENCODE. Sintaksnya adalah sebagai berikut:
MIMEHEADER_DECODE(buf IN VARCHAR2)
Fungsi ini mengembalikan nilai dalam format VARCHAR2.
Parameters
|
Parameter Name |
Description |
|
buf |
Nilai yang akan didekode, yang sebelumnya di-encode oleh fungsi MIMEHEADER_ENCODE. |
Example
Anda dapat menggunakan fungsi MIMEHEADER_DECODE untuk mendekode string yang sebelumnya di-encode oleh fungsi MIMEHEADER_ENCODE. Berikut contohnya:
SELECT UTL_ENCODE.MIMEHEADER_DECODE('=?UTF8?Q?What is the date??=') FROM DUAL;
Hasil berikut dikembalikan:
mimeheader_decode
-------------------
What is the date?
(1 row)
QUOTED_PRINTABLE_ENCODE
Fungsi QUOTED_PRINTABLE_ENCODE mengonversi dan meng-encode string ke dalam format Quoted-printable. Sintaksnya adalah sebagai berikut:
QUOTED_PRINTABLE_ENCODE(r IN RAW)
Fungsi ini mengembalikan nilai dalam format RAW.
Parameters
|
Parameter name |
Description |
|
r |
String yang akan di-encode ke dalam format Quoted-printable. |
Example
Sebelum menjalankan contoh berikut, eksekusi perintah ini untuk menginstruksikan server agar mengabaikan karakter non-printable dan menampilkan nilai BYTEA atau RAW dalam format yang dapat dibaca di layar:
SET bytea_output = escape;
Untuk informasi lebih lanjut, lihat Postgres core documentation.
Anda dapat menggunakan fungsi QUOTED_PRINTABLE_ENCODE untuk meng-encode string. Berikut contohnya:
SELECT UTL_ENCODE.QUOTED_PRINTABLE_ENCODE('E=mc2') FROM DUAL;
Hasil berikut dikembalikan:
quoted_printable_encode
-------------------------
E=3Dmc2
(1 row)
QUOTED_PRINTABLE_DECODE
Fungsi QUOTED_PRINTABLE_DECODE mengonversi string yang di-encode dalam format Quoted-printable menjadi string RAW yang telah didekode. Sintaksnya adalah sebagai berikut:
QUOTED_PRINTABLE_DECODE(r IN RAW)
Fungsi ini mengembalikan nilai dalam format RAW.
Parameters
|
Parameter name |
Description |
|
r |
String yang di-encode oleh fungsi QUOTED_PRINTABLE_ENCODE. String ini merupakan nilai RAW. |
Example
Sebelum menjalankan contoh berikut, eksekusi perintah ini untuk menginstruksikan server agar mengabaikan karakter non-printable dan menampilkan nilai BYTEA atau RAW dalam format yang dapat dibaca di layar:
SET bytea_output = escape;
Untuk informasi lebih lanjut, lihat Postgres core documentation.
Anda dapat menggunakan fungsi QUOTED_PRINTABLE_DECODE untuk mendekode string. Berikut contohnya:
SELECT UTL_ENCODE.QUOTED_PRINTABLE_DECODE('E=3Dmc2') FROM DUAL;
Hasil berikut dikembalikan:
quoted_printable_decode
-------------------------
E=mc2
(1 row)
TEXT_ENCODE
Fungsi TEXT_ENCODE mengonversi string ke set karakter tertentu, lalu meng-encode string tersebut. Sintaksnya adalah sebagai berikut:
TEXT_DECODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL)
Fungsi ini mengembalikan nilai dalam format VARCHAR2.
Parameters
|
Parameter name |
Description |
|
buf |
String yang akan di-encode. |
|
encode_charset |
Menentukan set karakter untuk konversi. Nilai default-nya adalah NULL. |
|
encoding |
Menentukan jenis encoding yang digunakan oleh TEXT_ENCODE. Anda dapat menentukan salah satu dari dua jenis encoding berikut:
Catatan
Nilai default-nya adalah encoding Quoted-printable. |
Example
Anda dapat menggunakan fungsi TEXT_ENCODE untuk meng-encode string. Berikut contohnya:
SELECT UTL_ENCODE.TEXT_ENCODE('What is the date?', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
Hasil berikut dikembalikan:
text_encode
--------------------------
V2hhdCBpcyB0aGUgZGF0ZT8=
(1 row)
TEXT_DECODE
Fungsi TEXT_DECODE mendekode string yang sebelumnya di-encode oleh fungsi TEXT_ENCODE ke dalam format VARCHAR2. Sintaksnya adalah sebagai berikut:
TEXT_DECODE(buf IN VARCHAR2, encode_charset IN VARCHAR2 DEFAULT NULL, encoding IN PLS_INTEGER DEFAULT NULL)
Fungsi ini mengembalikan nilai dalam format VARCHAR2.
Parameters
|
Parameter Name |
Description |
|
buf |
String yang di-encode oleh fungsi TEXT_ENCODE. |
|
encode charset |
Menentukan set karakter untuk konversi. Nilai default-nya adalah NULL. |
|
encoding |
Menentukan jenis encoding yang digunakan oleh TEXT_DECODE. Anda dapat menentukan salah satu dari dua jenis encoding berikut:
Catatan
Nilai default-nya adalah encoding Quoted-printable. |
Example
Anda dapat menggunakan fungsi TEXT_DECODE untuk mendekode string. Berikut contohnya:
SELECT UTL_ENCODE.TEXT_DECODE('V2hhdCBpcyB0aGUgZGF0ZT8=', 'BIG5', UTL_ENCODE.BASE64) FROM DUAL;
Hasil berikut dikembalikan:
text_decode
-------------------
What is the date?
(1 row)
UUENCODE
Fungsi UUENCODE mengonversi data RAW ke string dalam format UUENCODE. Sintaksnya adalah sebagai berikut:
UUENCODE(r IN RAW, type IN INTEGER DEFAULT 1, filename IN VARCHAR2 DEFAULT NULL, permission IN VARCHAR2 DEFAULT NULL)
Fungsi ini mengembalikan nilai dalam format RAW.
Parameters
|
Parameter name |
Description |
|
r |
String yang akan dikonversi ke format UUENCODE. |
|
type |
Menentukan jenis string UUENCODED yang dikembalikan. Nilai default-nya adalah 1. Untuk informasi lebih lanjut, lihat Types. |
|
filename |
Menentukan nama file yang ingin disematkan dalam bentuk ter-encode. Jika Anda tidak menentukan nama file, UUENCODE menyertakan nama file `uuencode.txt` dalam bentuk ter-encode. |
|
permission |
Menentukan pola izin. Nilai default-nya adalah NULL. |
Table 1. Types
|
Value |
Constant |
|
1 |
complete |
|
2 |
header_piece |
|
3 |
middle_piece |
|
4 |
end_piece |
Example
Sebelum menjalankan contoh berikut, eksekusi perintah ini untuk menginstruksikan server agar mengabaikan karakter non-printable dan menampilkan nilai BYTEA atau RAW dalam format yang dapat dibaca di layar:
SET bytea_output = escape;
Untuk informasi lebih lanjut, lihat Postgres core documentation.
Anda dapat menggunakan fungsi UUENCODE untuk meng-encode string. Berikut contohnya:
SELECT UTL_ENCODE.UUENCODE('What is the date?') FROM DUAL;
Hasil berikut dikembalikan:
uuencode
--------------------------------------------------------------------
begin 0 uuencode.txt\01215VAA="!I<R!T:&4@9&%T93\\`\012`\012end\012
(1 row)
UUDECODE
Fungsi UUDECODE mendekode string UUENCODE kembali ke nilai RAW aslinya yang sebelumnya di-encode oleh fungsi UUENCODE. Sintaksnya adalah sebagai berikut:
UUDECODE(r IN RAW)
Fungsi ini mengembalikan nilai dalam format RAW.
Parameters
|
Parameter Name |
Description |
|
r |
Berisi string UUENCODED yang akan dikonversi ke nilai RAW. |
Example
Sebelum menjalankan contoh berikut, eksekusi perintah ini untuk menginstruksikan server agar mengabaikan karakter non-printable dan menampilkan nilai BYTEA atau RAW dalam format yang dapat dibaca di layar:
SET bytea_output = escape;
Untuk informasi lebih lanjut, lihat Postgres core documentation.
Anda dapat menggunakan fungsi UUDECODE untuk mendekode string. Berikut contohnya:
SELECT UTL_ENCODE.UUDECODE('begin 0 uuencode.txt\01215VAA="!I<R!T:&4@9&%T93\\`\012`\012end\012') FROM DUAL;
Hasil berikut dikembalikan:
uudecode
-------------------
What is the date?
(1 row)
polar_enable_base64_decode
Jika parameter polar_enable_base64_decode diatur ke on, fungsi BASE64_DECODE dapat secara otomatis mendeteksi string ter-encode yang diformat salah dan mendekode bagian yang valid dari string tersebut. Untuk informasi lebih lanjut, lihat BASE64_DECODE.
Parameter polar_enable_base64_decode diatur ke on secara default. Anda dapat memodifikasi parameter ini di Konsol. Untuk informasi lebih lanjut, lihat Set cluster parameters.
-
Jika parameter
polar_enable_base64_decodediatur ke on, Anda dapat memberikan string ter-encode yang diformat salah. Berikut contohnya:SELECT utl_encode.base64_decode(utl_raw.cast_to_raw('NjMzNDgwN==gNjMzNjMz'));Fungsi BASE64_DECODE mendekode bagian yang valid dari string tersebut. Contoh berikut menunjukkan pengembalian normal:
base64_decode --------------- 633480 (1 row) -
Jika parameter
polar_enable_base64_decodediatur ke off, Anda dapat memberikan string ter-encode yang diformat salah. Berikut contohnya:SELECT utl_encode.base64_decode(utl_raw.cast_to_raw('NjMzNDgwN==gNjMzNjMz'));Fungsi BASE64_DECODE tidak dapat mendekode string yang diformat salah. Contoh berikut menunjukkan pengembalian error:
ERROR: unexpected "=" while decoding base64 sequence