Dê uma olhada em CAST_TO_RAW Ddocumentação:
Você deve usar este:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Qual (formatado) deve ser igual ao resultado desejado:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
É bastante inútil usar
NVARCHAR2
para uma string BASE64. O principal objetivo da codificação BASE64 é representar dados arbitrários apenas com caracteres ASCII, portanto, NVARCHAR2 não faz sentido. Como o BASE64 contém apenas ASCII, você não precisa se preocupar com nenhuma codificação de caracteres em CAST(... AS VARCHAR2(200))
. Claro, para o decodificado tipo de dados string
NVARCHAR2
pode ser muito útil.