Ta en titt på CAST_TO_RAW Ddokumentation:
Du bör använda den här:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Vilket (formaterat) ska vara lika med önskat resultat:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Det är ganska värdelöst att använda NVARCHAR2
för en BASE64-sträng. Huvudsyftet med BASE64-kodning är att endast representera godtyckliga data med ASCII-tecken, så NVARCHAR2 är ingen mening. Eftersom BASE64 endast innehåller ASCII behöver du inte oroa dig för någon teckenkodning vid CAST(... AS VARCHAR2(200))
.
Naturligtvis för avkodade strängdatatyp NVARCHAR2
kan vara mycket användbart.