如何在oracle apex online中执行oracle功能

如何在oracle apex online中执行oracle功能,oracle,oracle-apex,Oracle,Oracle Apex,我在oracle apex中有一个函数,它返回true或false。当我使用OracleApex的sqlcommand函数时,我无法执行该函数 function authenticateUser(p_username in varchar2 ,p_password in varchar2 ) return boolean is p_user Users.USERNAME%type; begin sel

我在oracle apex中有一个函数,它返回true或false。当我使用OracleApex的sqlcommand函数时,我无法执行该函数

function authenticateUser(p_username in varchar2 ,p_password in varchar2 )
        return boolean 
        is 
         p_user Users.USERNAME%type;
        begin
             select USERNAME into p_user from Users  where   upper(USERNAME)=upper(p_username) and  upper(PASSWORD) = upper(p_password);
                 return true;
             exception
                when NO_DATA_FOUND then 
                return false;
        end authenticateUser;
当我跑的时候

begin

PKG_AUTHORIZATION.authenticateUser(:p_username,:p_password);
end;
它将错误显示为

ORA-06550: line 3, column 1:
PLS-00221: 'AUTHENTICATEUSER' is not a procedure or is undefined
ORA-06550: line 3, column 1:
PL/SQL: Statement ignored
ORA-06512: at "SYS.DBMS_SQL", line 1721
1. begin
2. PKG_AUTHORIZATION.authenticateUser(:p_username,:p_password);
3. end;
当我写作的时候

select PKG_AUTHORIZATION.authenticateUser(:p_username,:p_password) from dual;
它抛出错误作为

ORA-00902: invalid datatype

我想这个函数存在于包中,对吗

由于它返回布尔值,您不能直接从SQL使用它,而是PL/SQL,例如:

declare
  l_val varchar2(20);
begin
  l_val := case when PKG_AUTHORIZATION.authenticateUser(:p_username,:p_password) then 'true'
                else 'false'
           end;
end;

但是,你不必担心。当您使用Oracle Apex标记问题时,我假定您将此函数用于自己的身份验证(而不是内置的)。如果是这样,您只需命名应该执行此任务的函数,并将其名称放入“Authentication function name”项中

我想这个函数存在于包中,对吗

由于它返回布尔值,您不能直接从SQL使用它,而是PL/SQL,例如:

declare
  l_val varchar2(20);
begin
  l_val := case when PKG_AUTHORIZATION.authenticateUser(:p_username,:p_password) then 'true'
                else 'false'
           end;
end;

但是,你不必担心。当您使用Oracle Apex标记问题时,我假定您将此函数用于自己的身份验证(而不是内置的)。如果是这样,您只需命名应该执行此任务的函数,并将其名称放入“Authentication function name”项中

不能从函数中选择结果,因为它返回的布尔值不是SQL所知道的数据类型。您的函数是否在包规范中定义?是否需要使用架构限定名称?您有运行该功能的权限吗?我们看不到函数在包中是如何定义的,也看不到运行它的用户是谁,因此答案很复杂。您无法从函数中选择结果,因为它返回的布尔值不是SQL所知道的数据类型。您的函数是否在包规范中定义?是否需要使用架构限定名称?您有运行该功能的权限吗?我们看不到该函数在包中是如何定义的,也看不到运行它的人,因此答案很复杂。