Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Replizieren Sie die Base64-Decodierung von Java in PL/SQL

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.