LONG과 CLOB 에 대한 데이터 이전.
2011. 1. 4. 11:34ㆍOracle/Oracle Tip
반응형
CLOB 같은 경우는 일반적으로 CTAS 가 가능하다.
그러나 LONG형은 불가능하다. 예전에는 export/import를 통하여 데이터를 이전시키는 경우가 있었다.
아래와 같은 명령어로 인하여 COPY가 가능하게 되었다.
copy from scott/tiger@prod create test_long2 using select * from test_long;
scott/tiger@prod LONG형 테이블을 가져올 데이터 베이스의 계정을 말한다.
그러나 이 명령어는 CLOB 포맷의 컬럼은 COPY가 불가능하다.
다음과 같은 메세지가 보여지게 된다.
SQL> scott/tiger@prod
Connected.
SQL> create table test_long
2 (a varchar2(20),
3 b number,
4 c number(10,2),
5 d clob,
6 e long)
7 /
Table created.
SQL> insert into test_long values('aaa',1,2.5,'asdfasdfsadf','asdfasdfasdfasdf');
1 row created.
SQL> commit;
Commit complete.
SQL> conn hr/hr@prod
Connected.
SQL> copy from scott/tiger@prod create test_long2 using select * from test_long;
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
CPY-0012: Datatype cannot be copied
SQL> copy from scott/tiger@prod create test_long2 using select a,b,c,e from test_long; --CLOB형 컬럼을 뺐음.
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
Table TEST_LONG2 created.
1 rows selected from scott@prod.
1 rows inserted into TEST_LONG2.
1 rows committed into TEST_LONG2 at DEFAULT HOST connection.
SQL>
※ 주의해야 할 점.
set long [최대길이수지정]
해주지않으면 지정된 수만큼만 출력되어져 데이터가 짤려서 들어가게 된다.
반응형
'Oracle > Oracle Tip' 카테고리의 다른 글
Range 파티션 테이블 및 테이블 스페이스 삭제 script (0) | 2011.04.14 |
---|---|
long형 replace (0) | 2011.01.24 |
tablespace 생성 스크립트 (0) | 2010.04.30 |
테이블 read only 설정 (0) | 2010.01.27 |
1년치 날짜 생성. (0) | 2010.01.14 |