2016-05-17 43 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;