Oracle
 sql >> Database >  >> RDS >> Oracle

Replica la decodifica Base64 di Java in PL/SQL

Dai un'occhiata a CAST_TO_RAW Documentazione:

Dovresti usare questo:

base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);

00010203040506074DBBEAB1D9972AB0

Quale (formattato) dovrebbe essere uguale al risultato desiderato:

00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0

È abbastanza inutile usare NVARCHAR2 per una stringa BASE64. Lo scopo principale della codifica BASE64 è rappresentare dati arbitrari solo con caratteri ASCII, quindi NVARCHAR2 non ha senso. Poiché BASE64 contiene solo ASCII, non devi preoccuparti di alcuna codifica dei caratteri in CAST(... AS VARCHAR2(200)) .

Naturalmente, per il decodificato tipo di dati stringa NVARCHAR2 potrebbe essere molto utile.