Tag et kig på CAST_TO_RAW Ddokumentation:
Du bør bruge denne:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Hvilket (formateret) skal svare til det ønskede resultat:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Det er ret ubrugeligt at bruge NVARCHAR2
for en BASE64-streng. Hovedformålet med BASE64-kodning er kun at repræsentere vilkårlige data med ASCII-tegn, så NVARCHAR2 giver ingen mening. Da BASE64 kun indeholder ASCII, behøver du ikke bekymre dig om tegnkodning ved CAST(... AS VARCHAR2(200))
.
Selvfølgelig for de afkodede strengdatatype NVARCHAR2
kan være meget nyttigt.