我为自定义apex身份验证创建了before update触发器。当密码更新时,触发器应该在md5中转换密码,但是每次更新我都会得到新的密码,例如,我只更新用户名,我也会得到新的随机密码。
create or replace TRIGGER bu_users
BEFORE UPDATE ON USERS
FOR EACH ROW
BEGIN
:NEW.username := upper(:NEW.username);
IF :NEW.password IS NOT NULL THEN
:NEW.password := fn_hash(:NEW.password);
ELSE
:NEW.password := :OLD.password;
END IF;
END;
fn\u哈希:
FUNCTION fn_hash (p_text IN VARCHAR2)
RETURN VARCHAR2
IS
l_results VARCHAR2(4000);
BEGIN
SELECT standard_hash(p_text, 'MD5')
INTO l_results
FROM DUAL;
RETURN l_results;
END fn_hash;
1条答案
按热度按时间4ioopgfo1#
请试试这个:
这是一个演示