oracle数据表
其中有2个字段
select password,md5psd from S_operator
password是未加密的密码
md5psd是已加密密码 (MD5 32位加密)oracle数据库本身有md5加密的方法的。求一句sql语句更新md5psd字段,
谢谢UPDATE S_OPERATOR SET MD5PSD=。

解决方案 »

  1.   

    CREATE OR REPLACE FUNCTION GET_MD5
    ( p_str in varchar2)
    RETURN varchar2 IS
    BEGIN
    RETURN Utl_Raw.Cast_To_Raw(DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => Upper(P_Str)));
    END;
      

  2.   


    update table_name t
       set t.mdtpsd = utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => t.password));
    commit;
      

  3.   

    先用Oracle的函数建好自己的MD5加密函数,再更新资料即可
    CREATE OR REPLACE FUNCTION MD5(VI_INPUT IN VARCHAR2) RETURN VARCHAR2 IS
    BEGIN
      RETURN UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => UPPER(VI_INPUT)));
    END;
    update S_operator t
       set t.md5psd = md5(t.password);
    commit;