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

时间:2015-04-28 09:11:39

标签: 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 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",
  • "用户名",
  • "密码"

以下是我在尝试验证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行,

感谢。

1 个答案:

答案 0 :(得分:0)

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

另请注意您的身份验证功能不正确。以下是一些相关信息,您还可以查看该项目的帮助来查看:

  

指定将验证​​用户用户名的函数的名称   和密码,在登录页面上输入后。如果你输入   没有,你允许任何用户名/密码成功。功能   本身可以在身份验证的“PL / SQL代码”中定义。 textarea的,   在包装内或作为储存的功能。

     

此函数必须向调用的登录过程返回一个布尔值   它。它有2个输入参数' p_username '和' p_password '这样可以   用于访问最终用户在登录页面上输入的值。

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