데이터 과학/Database

주민등록검사 PROCEDURE

weblogic 2008. 8. 26. 15:36
반응형

주민등록검사용 PROCEDURE      

--------------------------------------------------------------------------------
 
CREATE OR REPLACE FUNCTION jumin (j_num IN VARCHAR2) RETURN NUMBER IS
 
t_num   varchar2(12) := '234567892345';                  /* 주민등록번호 검사를 위한 가중치 */
 
b       number;   /* 주민등록번호 맨마지막자리수와 비교를 위한수 */
c       integer;  /* 주민등록번호의 맨마지막자리수 */
d       integer;  /* 계산결과를 나눠서 남은 나머지 */
i       integer;  /* t_num 의 값을 하나씩 잘라낸 수 */
j       integer;  /* j_num 의 값을 하나씩 잘라낸 수 */
 
BEGIN

   b := 0;

   FOR a IN 1..12 LOOP
     i := to_number(substr(t_num,a,1));
     j := to_number(substr(j_num,a,1));
     b := b + (i*j);
   END LOOP;
 
   c := to_number(substr(j_num,13,1));
   b := mod((11 - (mod(b,11))),10);

   IF b = c
     THEN return 1;
     ELSE return 0;
   END IF;
end jumin;
/
 
 
 
CREATE OR REPLACE PROCEDURE chk_jumin (r_num  IN VARCHAR2)
IS
 
a     number;
 
BEGIN
    a := jumin(r_num);
    IF a = 1
      THEN dbms_output.put_line('올바른 주민등록번호입니다');
      ELSE dbms_output.put_line('잘못된 주민등록번호입니다');
    END IF;
END;
/
 
SQL> set serveroutput on
SQL> exec chk_jumin('7308271542611');
 올바른 주민등록번호입니다
PL/SQL 처리가 정상적으로 완료되었습니다.

반응형
댓글수0