需要在自定义函数返回值的地方,增加关键字:DETERMINISTIC
原来的函数:
CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
IF LENGTHB(passwd)>0 THEN
retval := LOWER(utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd))) ;
RETURN retval;
ELSE
RETURN passwd;
END IF;
END;修改后:
CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)RETURN VARCHAR2 DETERMINISTIC
IS
retval varchar2(32);
BEGIN
IF LENGTHB(passwd)>0 THEN
retval := LOWER(utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd))) ;
RETURN retval;
ELSE
RETURN passwd;
END IF;
END;
评论0
暂时没有评论