-
주민등록검사 PROCEDUREDatabase 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 처리가 정상적으로 완료되었습니다.반응형