Dai un'occhiata a CAST_TO_RAW Documentazione:
Dovresti usare questo:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Quale (formattato) dovrebbe essere uguale al risultato desiderato:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
È abbastanza inutile usare NVARCHAR2
per una stringa BASE64. Lo scopo principale della codifica BASE64 è rappresentare dati arbitrari solo con caratteri ASCII, quindi NVARCHAR2 non ha senso. Poiché BASE64 contiene solo ASCII, non devi preoccuparti di alcuna codifica dei caratteri in CAST(... AS VARCHAR2(200))
.
Naturalmente, per il decodificato tipo di dati stringa NVARCHAR2
potrebbe essere molto utile.