Kijk eens naar CAST_TO_RAW Ddocumentatie:
Je zou deze moeten gebruiken:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Welke (opgemaakt) gelijk moet zijn aan het gewenste resultaat:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Het is vrij nutteloos om NVARCHAR2
. te gebruiken voor een BASE64-string. Het belangrijkste doel van BASE64-codering is om willekeurige gegevens alleen met ASCII-tekens weer te geven, dus NVARCHAR2 heeft geen zin. Aangezien BASE64 alleen ASCII bevat, hoeft u zich geen zorgen te maken over tekencodering bij CAST(... AS VARCHAR2(200))
.
Natuurlijk, voor de gedecodeerde string gegevenstype NVARCHAR2
kan erg handig zijn.