Oracle Database TIP
LONG TYPE을 LOB TYPE으로 CONVERSION하는 방법(TO_LOB) 7 0 28,666

by 김정식 LONG LOB CONVERSION TO_LOB [2002.05.17]


  Oracle8 부터 LONG이나 LONG RAW Type과는 별도로 LOB Type이 추가 되었다.

  LONG 이나 LONG RAW Type을 CLOB 또는 BLOB Type으로 변경하기 위해서는 Oracle8에서는 데이타를 다시 입력해야 했지만, 오라클 8i부터는 TO_LOB 함수를 이용해서 Long Type의 Data를 LOB Type으로 쉽게 변환 할 수 있다.

  TO_LOB Function은 보통 CREATE TABLE .. AS SELECT 문장이나 INSERT INTO .. SELECT ~ 문장을 이용해서 쉽게 사용 할 수 있다.

LONG 타입 CLOB변환 간단 예제 1

     
-- 테스트를 위한 LONG 컬럼을 가지는 테이블을 생성 한다. 
SQL> CREATE TABLE long_data (
       c1 NUMBER, 
       c2 LONG );

-- 테이블의 확인
SQL> DESC long_data
 
 Name        Null?  Type
 ----------- ------ ----
 C1                 NUMBER
 C2                 LONG
 

-- 샘플 데이터를 입력. 
SQL> INSERT INTO long_data 
     VALUES (1, 'This is some long data to be migrated to a CLOB');
 
SQL> INSERT INTO long_data
     VALUES (2, 'long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터 입니다.');

SQL> COMMIT;

-- CLOB 로 마이그레이션 하는 테이블을 생성. 
SQL> CREATE TABLE test_lobs(
       c1 NUMBER, 
       c2 CLOB );
 
-- 테이블의 확인
SQL> DESC test_lobs
 Name      Null?    Type
 --------- -------- ----
 C1                 NUMBER
 C2                 CLOB
 

-- LONG타입의 데이터를 CLOB타입의 데이터로 변환
SQL> INSERT INTO test_lobs
     SELECT c1, TO_LOB(c2) 
     FROM  long_data;
2 개의 행이 만들어졌습니다.
  
  
-- 변환된 데이터를 확인 
SQL> SELECT c2 FROM test_lobs;
 
C2
---------------------------------------------------------
This is some long data to be migrated to a CLOB
long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터 입니다.
    

LONG 타입을 CLOB 타입으로 변환하여 테이블 생성하는 예제

 
-- 테이블을 생성하면서 기존의 LONG 타입의 데이터를 CLOB 타입의 데이터로 변환. 
SQL> CREATE TABLE clob_data
       AS SELECT c1, TO_LOB(c2) c2 
       FROM long_data;
테이블이 생성되었습니다.
 

-- 데이터를 확인해 보세요..
SQL> SELECT c2 FROM long_data;
    

LONG RAW 타입 BLOB 타입으로 변환 예제

 
-- image_data테이블에 LONG RAW컬럼이 있다고 가정을 하면은
SQL> DESC image_data
 Name                Null?    Type
 ------------------- -------- ----
 C1                           NUMBER
 C2                           LONG RAW
 

-- 아래의 예제와 같이 테이블을 생성하면서 쉽게
-- BLOB 타입으로 변환 할 수 있다. 
SQL> CREATE TABLE blob_data 
     AS SELECT c1, TO_LOB(c2) c2 
        FROM image_data;
    

- 강좌 URL : http://www.gurubee.net/lecture/1360

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입