参考博文:
01 技术太卷我学APEX-定制验证方案_白龙马5217的博客-CSDN博客https://blog.csdn.net/html5builder/article/details/128662070
创建函数
添加参数
函数
create or replace function "F_LOGIN"
(p_username in VARCHAR2,
p_password in varchar2)
return boolean
is
b_ret boolean :=false;
c_1 number;
begin
select count(1) into c_1 from user_test_wxx2
where username = p_username and password = p_password;
if (c_1 = 1) then
b_ret := true;
else
b_ret := false;
end if;
return b_ret;
exception when others then
return false;
end;
【错误记录】PLS-00103: 出现符号 "CREATE"在需要下列之一时:
编译失败
编译失败, 行 6 (19:07:16)
PLS-00103: 出现符号 "CREATE"在需要下列之一时: begin function pragma procedure subtype type <an identifier> <a double-quoted delimited-identifier> current cursor delete exists prior external language
开始 函数杂注过程子类型类型<标识符> <双引号分隔标识符>当前游标删除 存在先前的外部语言
检查了一下因为重复创建函数“F_LOGIN”,去掉多余的
create or replace function "F_LOGIN"
(p_username in VARCHAR2,
p_password in varchar2)
return boolean
is
b_ret boolean :=false;
c_1 number;
begin
select count(1) into c_1 from user_test_wxx2
where name = p_username and password = p_password;
if (c_1 = 1) then
b_ret := true;
else
b_ret := false;
end if;
return b_ret;
exception when others then
return false;
end;
注意!!
函数中的项要与创建的表中的项对应,否则编译失败
转到 【SQL工作室】-【SQL命令】验证一下F_LOGIN函数。
成功查询!
begin
if(F_LOGIN('user','123456')) then
htp.p('True');
else
htp.p('False');
end if;
end;
创建一个验证方案【账号密码】
APEX原有验证方案【Oracle APEX 帐户】
方案名可以随便起,我取的是“logon”。
方案类型:定制;验证函数就是刚刚创建的数据库函数 F_LOGIN
设置授权方案
设置入库有2个地方,1是【共享主键】-【安全性】-【安全属性】,2是【应用程序定义】-【安全性】-【授权】
登录页面设置
登录页面初始设置
需要做的操作
APEX 默认的登录是把账号都转大写了,所以要设置这里。
apex_authentication.login(
p_username => :P9999_USERNAME,
p_password => :P9999_PASSWORD,
p_uppercase_username => false);
登录试试
成功啦!