Lihat CAST_TO_RAW Dokumentasi:
Anda harus menggunakan yang ini:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Yang (diformat) harus sama dengan hasil yang diinginkan:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Sangat tidak berguna untuk menggunakan NVARCHAR2
untuk string BASE64. Tujuan utama pengkodean BASE64 adalah untuk mewakili data arbitrer hanya dengan karakter ASCII, jadi NVARCHAR2 tidak masuk akal. Karena BASE64 hanya berisi ASCII, Anda tidak perlu khawatir tentang penyandian karakter apa pun di CAST(... AS VARCHAR2(200))
.
Tentu saja, untuk didekode tipe data string NVARCHAR2
mungkin sangat berguna.