我这样写对吗: create or replace procedure login_pro ( uname in varchar2, pwd in varchar2, flag out Boolean ) as u_check number; p_check number; begin select count(1) into u_check from dba_uses where username =uname; if u_check >0 then select count(1) into p_check from dba_users where username = uname and password =pwd; if(p_check>0) then flag :=true; else flag :=flase; end if; else flag :=flase; end if;end login_pro;
Oracle里的用户信息在表dba_users中,但是密码是加密的。估计很难实现这个功能。
明文,密码
create or replace procedure login_pro (
uname in varchar2,
pwd in varchar2,
flag out Boolean
)
as
u_check number;
p_check number;
begin
select count(1) into u_check from dba_uses where username =uname;
if u_check >0 then
select count(1) into p_check from dba_users where username = uname and password =pwd;
if(p_check>0) then
flag :=true;
else
flag :=flase;
end if; else
flag :=flase;
end if;end login_pro;
select count(1) into u_check from DBA_USERS where username =uname;这句有误
你执行的这个用户没有dba_users表访问权限。