我是Apex的新手,我正在尝试创建自定义身份验证。
以下是我正在使用的身份验证功能:
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;
我使用的用户表有三列
以下是我在尝试验证PL / SQL块中的函数时看到的错误。
ORA-06550:第1行,第73栏:PLS-00103:遇到符号" AUTHENTICATE"期待以下之一:=。 (@%; The 符号":="取代了#34; AUTHENTICATE"接着说。 ORA-06550: 第1行,第101栏:PLS-00103:遇到符号" VARCHAR2"什么时候 期待以下之一:(符号"("代替 " VARCHAR2"接着说。 ORA-06550:第2行,第57栏:PLS-00103: 遇到符号" VARCHAR2"当期待以下之一时: (ORA-06550:第24行,
感谢。
答案 0 :(得分:0)
在apex.oracle.com(apex 5.0)上:这肯定看起来像一个bug 。但它并没有阻止你保存计划。只需创建或应用,它将正确验证您的代码块并显示任何正确和相关的错误。最好在官方论坛上报告,或者如果您通过官方支持获得支持标识符。
另请注意您的身份验证功能不正确。以下是一些相关信息,您还可以查看该项目的帮助来查看:
指定将验证用户用户名的函数的名称 和密码,在登录页面上输入后。如果你输入 没有,你允许任何用户名/密码成功。功能 本身可以在身份验证的“PL / SQL代码”中定义。 textarea的, 在包装内或作为储存的功能。
此函数必须向调用的登录过程返回一个布尔值 它。它有2个输入参数' p_username '和' p_password '这样可以 用于访问最终用户在登录页面上输入的值。
您的输入参数必须是提到的那两个!