Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Replicar a decodificação Base64 de Java em PL/SQL


Dê uma olhada em CAST_TO_RAW Ddocumentação:

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

00010203040506074DBBEAB1D9972AB0

Qual (formatado) deve ser igual ao resultado desejado:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0

É bastante inútil usar NVARCHAR2 para uma string BASE64. O principal objetivo da codificação BASE64 é representar dados arbitrários apenas com caracteres ASCII, portanto, NVARCHAR2 não faz sentido. Como o BASE64 contém apenas ASCII, você não precisa se preocupar com nenhuma codificação de caracteres em CAST(... AS VARCHAR2(200)) .

Claro, para o decodificado tipo de dados string NVARCHAR2 pode ser muito útil.