Eche un vistazo a CAST_TO_RAW Ddocumentación:
Deberías usar este:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Que (formateado) debe ser igual al resultado deseado:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Es bastante inútil usar NVARCHAR2
para una cadena BASE64. El objetivo principal de la codificación BASE64 es representar datos arbitrarios solo con caracteres ASCII, por lo que NVARCHAR2 no tiene sentido. Dado que BASE64 contiene solo ASCII, no tiene que preocuparse por la codificación de caracteres en CAST(... AS VARCHAR2(200))
.
Por supuesto, para el descifrado tipo de datos de cadena NVARCHAR2
podría ser muy útil.