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 컬럼을 가지는 테이블을 생성 한다. 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 타입의 데이터로 변환. SQL> CREATE TABLE clob_data AS SELECT c1, TO_LOB(c2) c2 FROM long_data; 테이블이 생성되었습니다. -- 데이터를 확인해 보세요.. SQL> SELECT c2 FROM long_data;
-- 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
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.