sql >> Databáze >  >> RDS >> Oracle

Replikujte dekódování Base64 Java v PL/SQL

Podívejte se na CAST_TO_RAW Ddokumentace:

Měli byste použít tento:

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

00010203040506074DBBEAB1D9972AB0

Který (formátovaný) by se měl rovnat požadovanému výsledku:

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

Je celkem zbytečné používat NVARCHAR2 pro řetězec BASE64. Hlavním účelem kódování BASE64 je reprezentovat libovolná data pouze pomocí znaků ASCII, takže NVARCHAR2 nedává smysl. Protože BASE64 obsahuje pouze ASCII, nemusíte se starat o žádné kódování znaků při CAST(... AS VARCHAR2(200)) .

Samozřejmě pro dekódované datový typ řetězce NVARCHAR2 může být velmi užitečné.



  1. Používejte mycli a učte se MariaDB/MySQL pohodlně v terminálu!

  2. Codeigniter mi nedovolí aktualizovat záznam, protože některá pole musí být jedinečná

  3. Jak nainstalovat sqlcmd &bcp na Ubuntu

  4. Nesprávné dvojité hodnoty vrácené z mysql do java