在oracle apex中创建自定义身份验证时出错
我是Apex的新手,我正在尝试创建自定义身份验证 下面是我正在使用的身份验证功能:在oracle apex中创建自定义身份验证时出错,oracle,authentication,oracle-apex,basic-authentication,Oracle,Authentication,Oracle Apex,Basic Authentication,我是Apex的新手,我正在尝试创建自定义身份验证 下面是我正在使用的身份验证功能: FUNCTION authenticate(username_in IN VARCHAR2 ,password_in IN VARCHAR2) RETURN BOOLEAN IS l_value NUMBER; l_returnvalue BOOLEAN; BEGIN BEGIN SELECT
FUNCTION authenticate(username_in IN VARCHAR2
,password_in IN VARCHAR2) RETURN BOOLEAN IS
l_value NUMBER;
l_returnvalue BOOLEAN;
BEGIN
BEGIN
SELECT 1
INTO l_value
FROM users
WHERE 1 = 1
AND upper(users.username) = upper(username_in)
AND users.password = password_in;
EXCEPTION
WHEN no_data_found
OR too_many_rows THEN
l_value := 0;
WHEN OTHERS THEN
l_value := 0;
END;
l_returnvalue := l_value = 1;
RETURN l_returnvalue;
END;
我使用的users表有三列
身份证件
用户名,
暗语
下面是我在尝试验证PL/SQL块中的函数时看到的错误
ORA-06550:第1行,第73列:PLS-00103:在预期以下情况之一时遇到符号身份验证::=。@%;这个
符号:=已替换为身份验证以继续。ORA-06550:
第1行第101列:PLS-00103:在
应为以下情况之一:符号被替换为
VARCHAR2继续。ORA-06550:第2行第57列:PLS-00103:
预期出现以下情况之一时遇到符号VARCHAR2:
ORA-06550:第24行
谢谢。在apex.oracle.com apex 5.0上:这看起来确实像个bug。但这并不能阻止你拯救这个计划。只需创建或应用,它将正确验证您的代码块,并显示任何正确和相关的错误。最好在官方论坛上报告这一点,或者如果您有通过官方支持的支持标识符 还要注意,您的身份验证功能不正确。以下是一些相关信息,您也可以通过查看该项目的帮助来查看: 指定将验证用户用户名的函数的名称 和密码,在登录页面上输入后。如果你进去 没有,您允许任何用户名/密码成功。功能 自身可以在身份验证的“PL/SQL代码”文本区域中定义, 在包内或作为存储函数 此函数必须向调用的登录过程返回布尔值 信息技术它有两个输入参数“p_用户名”和“p_密码”,可以 用于访问最终用户在登录页面上输入的值
您的输入参数必须是上述两个 谢谢你的回复,汤姆。你能提供一个适用于我上面提到的users表的示例函数吗?你几乎不需要做任何事情,只需要更改参数的名称。例如,从username_in到p_username,同样地,从password_in到p_password。如果单击方案定义中项目的“帮助”链接,您也可以在那里找到示例代码,尽管您所拥有的应该可以工作。不过,我会删除where子句中的1=1,因为它没有任何作用。谢谢你的帮助,汤姆。