오라클 - 프로시저(로그인)

지환·2023년 11월 29일
0

오라클

목록 보기
6/10
post-thumbnail
CREATE OR REPLACE procedure SCOTT.proc_login1(p_id in varchar2, p_pw in varchar2, r_msg out varchar2)
is
    status varchar2(100):= 2;
begin
    -- 1이면 아이디와 비번이모두 일치, -1이면 아이디가 존재하지 않음, 0이면 비번이 틀립니다.
    -- 아이디가 존재하면 0을 반환. 비번도 일치하면 1을 반환
    select nvl((select  m_id from member1 where  m_id=p_id),'-1')  into status
      from dual;     
    if status = -1 then
        r_msg := '아이디가 존재하지 않습니다.';
    else -- 아이디가 조회된경우
        select nvl((select m_name from member1
                           where m_id=p_id
                            and m_pw=p_pw), '비번이 틀립니다.') into r_msg
           from dual;
    end if;  
end;
/

  • nvl 함수를 이용해서 로그인 처리 구현 로직은 간단하다.
  • 학습목표는 핵심은 파라미터로 받은 인자값을 어떻게 활용하는가?

실행방법

SQL> variable r_msg varchar2(300);
SQL> exec proc_login1('kiwi','111',:r_msg);
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> print rmsg;
SP2-0552: 바인드 변수 "RMSG" 가 정의되지 않았습니다.
SQL> print r_msg;
R_MSG
--------------------------------------------------------------------------------
1
2:25
SQL> exec proc_login1('kiwi','123',:r_msg);
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> print r_msg;
R_MSG
--------------------------------------------------------------------------------
비번이 틀립니다
profile
아는만큼보인다.

0개의 댓글