Hãy xem CAST_TO_RAW Tài liệu:
Bạn nên sử dụng cái này:
base64DecodedInput:= UTL_ENCODE.base64_decode(UTL_RAW.CAST_TO_RAW(TO_CHAR(valueToDecrypt)));
DBMS_OUTPUT.PUT_LINE ( 'Base64 decoded is: ' || base64DecodedInput);
00010203040506074DBBEAB1D9972AB0
Cái nào (được định dạng) phải bằng với kết quả mong muốn:
00 01 02 03 04 05 06 07 4D BB EA B1 D9 97 2A B0
Sẽ khá vô ích khi sử dụng NVARCHAR2
cho một chuỗi BASE64. Mục đích chính của mã hóa BASE64 là chỉ biểu diễn dữ liệu tùy ý với các ký tự ASCII, vì vậy NVARCHAR2 không có ý nghĩa gì. Vì BASE64 chỉ chứa ASCII nên bạn không phải lo lắng về bất kỳ mã hóa ký tự nào tại CAST(... AS VARCHAR2(200))
.
Tất nhiên, đối với được giải mã kiểu dữ liệu chuỗi NVARCHAR2
có thể rất hữu ích.