Sehen Sie sich CAST_TO_RAW an Dokumentation:
Sie sollten diese hier verwenden:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Welches (formatiert) sollte gleich dem gewünschten Ergebnis sein:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Es ist ziemlich nutzlos, NVARCHAR2
zu verwenden für einen BASE64-String. Der Hauptzweck der BASE64-Codierung besteht darin, beliebige Daten nur mit ASCII-Zeichen darzustellen, daher macht NVARCHAR2 keinen Sinn. Da BASE64 nur ASCII enthält, müssen Sie sich bei CAST(... AS VARCHAR2(200))
um keine Zeichencodierung kümmern .
Natürlich für das entschlüsselte String-Datentyp NVARCHAR2
könnte sehr nützlich sein.