2016-05-17 40 views
0

如何创建过程,用于验证用户登录如何创建过程,用于验证用户登录

程序报头是 CREATE OR REPLACE PROCEDURE check_user_login

USER_ID NUMBER,

密码VARCHAR2,

out_c OUT NUMBER

) 如果用户标识不在USER表的user_id列中,则将-1指定给out_c参数。

userid的值位于USER表的USER_ID列中,但对应的帐户被锁定(IS_LOCKED_OUT ='Y')。您将-2指定给out_code参数。

任何人都可以请帮助我的逻辑。我无法弄清楚。

+1

只是检查 - 这只是一个练习教育目的? (请说是) –

+0

不知道你在找什么。问题中已经有了“逻辑”。您是否在寻找关于如何检查用户是否在USERS表中的帮助,和/或如何检查帐户是否被锁定? – ruudvan

+0

是它的一项任务。我想要一些帮助来检查用户标识是否在用户表中。 – Kusuma

回答

0

试试这个代码:

create or replace procedure check_user_login(p_user_id number, p_password varchar2, p_out_c OUT number) 
is 
    v_account_status varchar2(255); 
begin 

    p_out_c := 0; 

    select account_status 
    into v_account_status 
    from dba_users 
    where user_id = p_user_id 
    and password = p_password; 

    if v_account_status like '%LOCKED%' then 
    p_out_c := -2; 
    end if; 

    exception 
    when no_data_found then 
     p_out_c := -1; 

end check_user_login;