REPLACE 할려고 FUNCTION 을 하나 만들었습니다
입력받는 변수값이 메모같은거라....특정 코드값이 들어있는것만 바꿔야 하거든요..
W_JONG 이테이블에는 ASISCD , TOBECD 컬럼이 두개이구요..
Select Into 절에서 Too Many Rows 에러가 나서 결과값이 NULL로 나오네요...
어떻게 처리를 해야 할지....
================================
입력값
ex) 직장:051-634-xxxx 24566324
785203146 직장:031-722-xxxx
================================
결과값
ex) 직장:051-634-xxxx 111111111111
2222222222 직장:031-722-xxxx
================================
코드테이블에는 이런식으로 들어가있습니다
ASISCD와 동일한 값이 있으면 TOBECD로 변경을 해야 하는거라서요..
ASISCD TOBECD
24566324 11111111111
785203146 2222222222
75123495 3333333333
==============================
CREATE OR REPLACE FUNCTION FN_MIG_W_JONG(iColNM IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2
IS
v_sq VARCHAR2(1000);
BEGIN
SELECT REPLACE(iColNM,ASISCD,TOBECD) AS tobe INTO v_sq FROM W_JONG
RETURN v_sq;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN iColNM;
WHEN OTHERS THEN
RETURN v_sq;
END; |