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