출처 :  http://kr.forums.oracle.com/forums/thread.jspa?threadID=469108




Purpose
--------------------------------------------------------------------------------

Long type의 data를 lob type으로 conversion하는 to_lob function에 대해 알아보자.



Explanation
--------------------------------------------------------------------------------

Oracle8 부터 long 이나 long raw type과는 별도로 lob type이 추가되었다.

long 이나 long raw type을 clob 또는 blob type으로 변경하기 위해서는 Oracle8 에서는 데이타를
다시 입력해야 했지만, Oracle8i 에서는 추가된TO_LOB function을 이용하여 간단히 data migration을 할 수 있다.

TO_LOB function은 보통 create table .. as select .. 문장이나 insert into .. select .. 문장에서 쉽게 사용할 수 있다.



Example
--------------------------------------------------------------------------------

[예제1] long type의 데이타를 clob type으로 옮기는 방법


아래의 예제에서 type만 long raw와 blob 로 바꾸어도 가능하다.

SQL> create table long_data (c1 number, c2 long);
Table created.

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 row created.

SQL> create table test_lobs (c1 number, c2 clob);
Table created.

SQL> desc test_lobs
Name Null? Type
------------ ----
C1      NUMBER
C2      CLOB



SQL> insert into test_lobs select c1, to_lob(c2) from long_data;
1 row created.


SQL> select c2 from test_lobs;
C2
-----------------------------------------------------
This is some long data to be migrated to a CLOB





[예제2] long type을 clob type으로 바꾸어 table 생성하는 방법

SQL> create table clob_data as select c1, to_lob(c2) c2 from long_data;
Table created.

SQL> desc clob_data
Name Null? Type
------------ ----

C1     NUMBER
C2     CLOB




[예제3] long raw type을 blob type으로 바꾸어 table 생성하는 방법

SQL> desc image_data
Name Null? Type
------------ ----
C1     NUMBER
C2     LONG RAW

SQL> create table blob_data as select c1, to_lob(c2) c2 from image_data;
Table created.


SQL> desc blob_data
Name Null? Type

------------ ----
C1     NUMBER
C2     BLOB



+ Recent posts