Oracle
 sql >> Base de données >  >> RDS >> Oracle

Répliquer le décodage Base64 de Java en PL/SQL

Jetez un oeil à CAST_TO_RAW Documentation :

Vous devriez utiliser celui-ci :

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

00010203040506074DBBEAB1D9972AB0

Lequel (formaté) doit être égal au résultat souhaité :

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

Il est tout à fait inutile d'utiliser NVARCHAR2 pour une chaîne BASE64. Le but principal du codage BASE64 est de représenter des données arbitraires uniquement avec des caractères ASCII, donc NVARCHAR2 n'a aucun sens. Étant donné que BASE64 ne contient que de l'ASCII, vous n'avez pas à vous soucier de l'encodage des caractères à CAST(... AS VARCHAR2(200)) .

Bien sûr, pour les décodés type de données de chaîne NVARCHAR2 pourrait être très utile.