DECLARE
l_string NVARCHAR2(600) := '123456';
checksum NVARCHAR2(600);
BEGIN
DBMS_OUTPUT.DISABLE;
DBMS_OUTPUT.ENABLE(1000000);
DBMS_OBFUSCATION_TOOLKIT.md5 (input_string => l_string, checksum_string => checksum);
DBMS_OUTPUT.PUT_LINE(RAWTONHEX(utl_raw.cast_to_raw(checksum)));
END;
期望值:e10adc3949ba59abbe56e057f20f883e
但它返回:FFFD00390049FFFD0059FFFDFFFD0056FFFD000FFFFD003E
注意我想维护 nvarchar2 数据类型。校验和变量的值存储在 nvarchar2 类型的列中。
我知道 md5 接受并返回 varchar2 中的数据。但是,如果有人可以使用 nvarchar2 数据类型帮助我解决这个问题,那就太好了。
NLS_CHARACTERSET = AL32UTF8