기술 정보
home
채널 소개
home

Long 데이터 타입 테이블 복제 방법 (Table Copy)

문서 유형
기술 정보
분야
관리/환경설정
키워드
Data type
Table copy
1 more property

개요

Long 데이터 타입 테이블은 to_lob 함수 또는 PL/SQL 블록을 이용해 복제할 수 있습니다.

방법

to_lob 함수를 이용한 복제

to_lob 함수는 LONG 타입 데이터를 CLOB 타입으로 변환하여 테이블에 복사할 때 사용합니다.
SQL> CREATE TABLE long_test (a LONG); Table created. Elapsed: 00:00:02.68 SQL> INSERT INTO long_test VALUES('vijay kaushik'); 1 row created. Elapsed: 00:00:01.09 SQL> COMMIT; Commit complete. Elapsed: 00:00:01.09 SQL> CREATE TABLE lob_test (a CLOB); Table created. Elapsed: 00:00:01.09 SQL> INSERT INTO lob_test SELECT TO_LOB(a) FROM long_test; 1 row created. Elapsed: 00:00:01.09 SQL> COMMIT; Commit complete.
SQL
복사

PL/SQL 블록을 이용한 복제

단순 INSERT문으로는 LONG 데이터를 다른 타입으로 변환할 때 오류가 발생할 수 있습니다.
이 경우, PL/SQL 블록을 이용하여 한 행씩 데이터를 복사하면 변환 오류를 피할 수 있습니다.
SQL> CREATE TABLE long_test 2 (x INT, y LONG); Table created. Elapsed: 00:00:01.14 SQL> CREATE TABLE varchar_test 2 (x INT, y VARCHAR2(4000)); Table created. Elapsed: 00:00:01.14 SQL> INSERT INTO long_test VALUES(1,'vijay kaushik'); 1 row created. Elapsed: 00:00:01.14 SQL> COMMIT; Commit complete; -- 단순 INSERT 시 타입 변환 오류 발생\ Elapsed: 00:00:01.14 SQL> INSERT INTO varchar_test SELECT * FROM long_test; TBR-11021: Error occurred during type casting. -- PL/SQL 블록으로 복제 Elapsed: 00:00:01.34 SQL> BEGIN 2 FOR i IN (SELECT * FROM long_test) 3 LOOP 4 INSERT INTO varchar_test VALUES(i.x, i.y); 5 END LOOP; 6 END; SQL> / PL/SQL procedure successfully completed. Elapsed: 00:00:01.62
SQL
복사