Podívejte se na CAST_TO_RAW Ddokumentace:
Měli byste použít tento:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Který (formátovaný) by se měl rovnat požadovanému výsledku:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Je celkem zbytečné používat NVARCHAR2
pro řetězec BASE64. Hlavním účelem kódování BASE64 je reprezentovat libovolná data pouze pomocí znaků ASCII, takže NVARCHAR2 nedává smysl. Protože BASE64 obsahuje pouze ASCII, nemusíte se starat o žádné kódování znaků při CAST(... AS VARCHAR2(200))
.
Samozřejmě pro dekódované datový typ řetězce NVARCHAR2
může být velmi užitečné.