## LONG TYPE을 LOB TYPE으로 CONVERSION하는 방법(TO_LOB) ##

Bulletin no 12143 참고


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

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

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



[예제1] LONG Type의 데이타를 CLOB Type으로 옮기는 방법
아래의 예제에서 Type만 LONG RAW와 BLOB으로로 바꾸어도 가능 합니다.


-- 마이그레이션 테스트를 위한 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');
1 개의 행이 만들어졌습니다.

SQL>INSERT INTO long_data
VALUES (2, 'long컬럼을 clob으로 마이그레이션 하기 위한 테스트 데이터 입니다.');
1 개의 행이 만들어졌습니다.


-- 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으로 마이그레이션 하기 위한 테스트 데이터 입니다.





[예제2] LONG Type을 CLOB Type으로 바꾸어 Table 생성하는 방법


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


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




[예제3] LONG RAW Type을 BLOB Type으로 바꾸어 Table 생성하는 방법


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


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


================================================
* 오라클 정보공유 커뮤니티 oracleclub.com
* http://www.oracleclub.com
* http://www.oramaster.net
* 운영자 : 김정식 (oramaster _at_ naver.com)
================================================
※ oracleclub 강좌를 다른 홈페이지에 퍼가실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

+ Recent posts