ORACLE VARCHAR2 --> CLOB 로 바꾸는 방법....

 

-- 옮기기위한 테이블과 옮길 테이블 그리고 중간 단계를 거칠 테이블을 생성한다.

테이블 정보

TEST_TBL  :  ( 옮기기 위한 테이블) 원본

    USERID   VARCHAR2(20) ,

    CONTENT  VARCHAR2(40000)


TEST_TBL_LONG  :  (CLOB로 바꾸기 위하여 중간에 거치는 테이블)

    USERID  VARCHAR(20),

    CONTENT  LONG


TEST_TML_CLOB  :  (마지막으로 바꿀 테이블)

    USERID  VARCHAR(20),

    CONTENT  CLOB


예를 들어 위와 같은 테이블을 만들어 테스트를 해볼수 있다.


일반 VARCHAR2 에서 CLOB로 바로 옮길수는 없다. LONG 형에서 CLOB로 옮길수는 있다.

바로TO_LOB를 쓰면 LONG 에서 CLOB로 바꿀수 있다.


단 , 여기서 바꾸거나, 바뀌는 모든 테이블이 모두 같은 수의 컬럼과 순서를 가지고 있다.


1. 바꾸고 싶은 원본 테이블을 LONG 으로 바꾸어 주어야 한다.

INSERT INTO TEST_TBL_LONG
    SELECT USERID , CONTENT FROM TEST_TBL
 
 
2. LONG으로 바꾼 테이블을 CLOB로 바꾼다. 이때 TO_LOB를 사용한다.
INSERT INTO TEST_TBL_LONG
   SELECT USERID ,TO_LOB(CONTENT) FROM TEST_TBL_LONG


이렇게 하면 비교적 손쉽게 VARCHAR2 를 CLOB로 바꿀수 있다.



+ Recent posts