我是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;
我使用的用户表有三列
-
"id",
-
"username",
-
"password"
下面是我尝试验证PL / SQL块中的函数时看到的错误 .
ORA-06550:第1行,第73列:PLS-00103:当期望下列之一时遇到符号“AUTHENTICATE”:: = . (@%;符号“:=”代替“AUTHENTICATE”继续.ORA-06550:第1行,第101列:PLS-00103:当期望下列之一时遇到符号“VARCHAR2”:(符号“ (“替换为”VARCHAR2“继续.ORA-06550:第2行,第57栏:PLS-00103:当遇到以下情况之一时遇到符号”VARCHAR2“:( ORA-06550:第24行,
谢谢 .
1 回答
在apex.oracle.com(顶点5.0): this certainly looks like a bug . 但它并没有阻止你保存计划 . 只需创建或应用,它将正确验证您的代码块并显示任何正确和相关的错误 . 最好在官方论坛上报告,或者如果您通过官方支持获得支持标识符 .
Note also that your authentication function is incorrect. 以下是您可以通过查看项目帮助查看的一些相关信息:
您的输入参数必须是提到的那两个!