ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주민등록검사 PROCEDURE
    Database 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 처리가 정상적으로 완료되었습니다.

    반응형
Designed by Tistory.