[Oracle] 오라클 다중 Replace의 대안 [Replace 여러개 방법]

정우씨 2022. 7. 19. 11:12

[Oracle] 오라클 다중 Replace의 대안 [Replace 여러개 방법]

 개요

컬럼이 약 600개정도가 있는 조회절이 있었는데 이 모든 컬럼을 다른 테이블의 매치되는 컬럼과 텍스트 REPLACE가 필요한 상황.

손으로 변경하면 시간도 꽤 오래걸리고 정확성도 떨어질 것 같아서 고민을 하다가 반복문을 사용해보기로 했어요.

 1. CLOB테이블 생성

쿼리를 담을 CLOB 테이블 생성,  SQL 저장.

CREATE TABLE TMP_CLOB ( QUERY CLOB );

 

 2. 컬럼정보 테이블 생성

REPLACE할 컬럼정보 테이블 생성 후 데이터 적재.

TMP_COL - TARGET_ID - 타겟컬럼 TMP_COL - REPALCE_ID - 변경될 컬럼
COL1 COL2

 3. 반복문 작성

BEGIN

    FOR X IN (

        SELECT TARGET_ID, REPLACE_ID
        FROM TMP_COL;

    )

    LOOP

        UPDATE TMP_CLOB
        SET QUERY = REPLACE(QUERY,X.TARGET_ID,X.REPLACE_ID);

    END LOOP;

    COMMIT;

END;

 4. 수행결과

약 600개의 컬럼이 정상적으로 REPLACE되었음을 확인 후 데이터 조회 완료.