sql >> Database >  >> RDS >> Oracle

Repliceer Base64-decodering van Java in PL/SQL

Kijk eens naar CAST_TO_RAW Ddocumentatie:

Je zou deze moeten gebruiken:

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

00010203040506074DBBEAB1D9972AB0

Welke (opgemaakt) gelijk moet zijn aan het gewenste resultaat:

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

Het is vrij nutteloos om NVARCHAR2 . te gebruiken voor een BASE64-string. Het belangrijkste doel van BASE64-codering is om willekeurige gegevens alleen met ASCII-tekens weer te geven, dus NVARCHAR2 heeft geen zin. Aangezien BASE64 alleen ASCII bevat, hoeft u zich geen zorgen te maken over tekencodering bij CAST(... AS VARCHAR2(200)) .

Natuurlijk, voor de gedecodeerde string gegevenstype NVARCHAR2 kan erg handig zijn.



  1. MySQL Galera-clusterreplicatie gebruiken om een ​​geo-gedistribueerde cluster te maken:deel twee

  2. Query's binnen queries:is er een betere manier?

  3. MAAK TABEL MySQL versus T-SQL met syntaxisvoorbeelden

  4. SQL-subquery retourneert meer dan 1 rij