我创建了一个密码长度至少为8个字符的函数 .
CREATE OR REPLACE FUNCTION password_function (
username VARCHAR2,
password VARCHAR2,
old_password VARCHAR2)
RETURN BOOLEAN AS
BEGIN
IF LENGTH(password) < 8 THEN
RETURN FALSE;
ELSE
RETURN TRUE;
END IF;
END password_function;
/
比我改变user1配置文件一样
“alter profile user1 limit password_verify_function password_function”
然后,当我尝试使用user1配置文件和9个字符的密码创建用户时,我收到以下错误 .
SQL>创建由Passowrd1 profile user1标识的用户测试;在第1行创建由Passowrd1 * ERROR标识的用户测试:
ORA-28003:指定密码的密码验证失败
ORA-06503:PL / SQL:返回没有值的函数
你能告诉我我的功能有什么问题吗?以及如何解决?
1 回答
看来,您没有向我们展示的代码存在问题 .
你的函数
password_function ()
必须在某个地方使用(我想在另一个函数中),似乎在该调用函数中缺少一个返回 .在您致电
alter profile ...
后检查是否有退货 .另一件事:
如果新密码为空,此代码将返回true!
更好的是: