다름이 아니라 주민번호 컬럼을 가져와서 유효성 검사를 하고자 하는데요 쿼리로요.. 오라클 함수로 처리해서 결과값을 가져와야 할것 같은데요.. 예를 들어서 주민번호가 유효하면 1, 그렇지 않으면 2 이런식으로 return값을 가져오는 함수를 만들고 싶습니다.
답변 좀 부탁드릴께요...
by xm
[2011.10.31 13:02:37]
예전에 만들어본겁니다.
CREATE OR REPLACE FUNCTION FUNC_NUM_CHK
(
isCSNUM IN STRING --대상번호
) RETURN STRING
IS
v_chkBit NUMBER := TO_NUMBER(SUBSTR(isCSNUM,13,1));
v_chk NUMBER := 0;
BEGIN
-- 주민번호
FOR cnt IN 1..12 LOOP
v_chk := v_chk + (SUBSTR(isCSNUM,cnt,1) * (MOD(cnt-1,8) + 2));
END LOOP;
-- 외국인일 경우
IF SUBSTR(isCSNUM,7,1) IN ('5','6','7','8') THEN
IF MOD(TO_NUMBER(SUBSTR(isCSNUM,8,2)),2) != 0 THEN
RETURN 'N';
END IF;
IF SUBSTR(isCSNUM,12,1) NOT IN ('6','7','8','9') THEN
RETURN 'N';
END IF;