首页 文章

错误在oracle apex中创建自定义身份验证

提问于
浏览
0

我是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 回答

  • 0

    在apex.oracle.com(顶点5.0): this certainly looks like a bug . 但它并没有阻止你保存计划 . 只需创建或应用,它将正确验证您的代码块并显示任何正确和相关的错误 . 最好在官方论坛上报告,或者如果您通过官方支持获得支持标识符 .

    Note also that your authentication function is incorrect. 以下是您可以通过查看项目帮助查看的一些相关信息:

    在登录页面上输入后,指定将验证用户用户名和密码的功能的名称 . 如果您不输入任何内容,则允许任何用户名/密码成功 . 函数本身可以在身份验证的“PL / SQL代码”文本区域中,在包中或作为存储函数中定义 . 此函数必须向调用它的登录过程返回一个布尔值 . 它有2个输入参数'p_username'和'p_password',可用于访问最终用户在登录页面上输入的值 .

    您的输入参数必须是提到的那两个!

相关问题