네이버에서 '법인번호 체크', '주민번호 체크'로 검색하니까 로직은 많이 나오는데요. 해당 로직을 function으로 만드시면 될 것 같네요.
주민번호 체크 : http://aljjabaegi.tistory.com/11
법인번호 체크 : http://blog.naver.com/PostView.nhn?blogId=woorinil&logNo=140047779288&widgetTypeCall=true
WITH t AS ( SELECT '1609294567893' sno FROM dual UNION ALL SELECT '1101110656368' FROM dual ) SELECT sno , m, x, y , DECODE(m, x, 'Y', 'N') 법인 , DECODE(m, y, 'Y', 'N') 주민 FROM (SELECT sno , m , MOD(10 - MOD(a*1 + b*2 + c*1 + d*2 + e*1 + f*2 + g*1 + h*2 + i*1 + j*2 + k*1 + l*2, 10), 10) x , MOD(11 - MOD(a*2 + b*3 + c*4 + d*5 + e*6 + f*7 + g*8 + h*9 + i*2 + j*3 + k*4 + l*5, 11), 10) y FROM (SELECT sno , SUBSTR(sno, 1, 1) a , SUBSTR(sno, 2, 1) b , SUBSTR(sno, 3, 1) c , SUBSTR(sno, 4, 1) d , SUBSTR(sno, 5, 1) e , SUBSTR(sno, 6, 1) f , SUBSTR(sno, 7, 1) g , SUBSTR(sno, 8, 1) h , SUBSTR(sno, 9, 1) i , SUBSTR(sno, 10, 1) j , SUBSTR(sno, 11, 1) k , SUBSTR(sno, 12, 1) l , SUBSTR(sno, 13, 1) m FROM t ) ) ;