Разгледайте CAST_TO_RAW Dдокументация:
Трябва да използвате този:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Кое (форматирано) трябва да е равно на желания резултат:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Съвсем безполезно е да използвате NVARCHAR2
за низ BASE64. Основната цел на BASE64 кодирането е да представя произволни данни само с ASCII знаци, така че NVARCHAR2 няма смисъл. Тъй като BASE64 съдържа само ASCII, не е нужно да се притеснявате за кодиране на знаци при CAST(... AS VARCHAR2(200))
.
Разбира се, за декодираните низ тип данни NVARCHAR2
може да бъде много полезно.