1
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;
期望值:e10adc3949ba59abbe56e057f20f883eNVARCHAR2轉換爲MD5哈希在甲骨文DBMS_OBFUSCATION_TOOLKIT.MD5
但它返回:FFFD00390049FFFD0059FFFDFFFD0056FFFD000FFFFD003E
注意我想保持NVARCHAR2數據類型。校驗和變量的值存儲在類型爲nvarchar2的列中。
我知道md5接受並返回varchar2中的數據。但如果有人可以幫助我使用nvarchar2數據類型來解決這個問題,那就太好了。
的NLS_CHARACTERSET = AL32UTF8
當你得到'ORA-28231:沒有數據傳遞給模糊工具包'時,這段代碼不會運行。因爲你沒有把'l_string'設置成任何東西都是有意義的。那麼你從哪裏得到預期和實際的校驗和?在一個不相關的說明中,爲什麼「提交」? –
對不起,l_string的值= 123456。同意不需要提交。 – user357086
請更新代碼以顯示您運行的確切代碼,包括123456. –