LONG type이 있는 table copy 방법
● LONG type이 있는 table copy시 CTAS를 하면 ora-997 에러 발생함
ORA-997 :illegal use of LONG datatype
[ LONG type이 있는 table copy 방법 : table le를 le2 copy 하고자 할때 ]
1. listener 를 통해 접속가능한 connect string 이 있어야 함
2.원본 table(le)의 column 확인
3. 원본 table과 같은 구조를 갖는 table (le2)를 빈 껍데기만 생성
4. 아래와 같은 방법으로 table copy 수행
copy from scott/tiger@remote to scott/tiger@local append le2 using select * from le;
5.copy 된 table (le2)를 query 해서 결과 확인
======================================================================================
1. listener 를 통해 접속가능한 connect string 이 있어야 함
예 @ora805
$ sqlplus scott/tiger@ora805
2.원본 table(le)의 column 확인
SQL> desc le
Name Null? Type
------------------------------- -------- ----
C1 NUMBER
C2 LONG
SQL> insert into le values ( 123, 'long column values');
SQL> commit;
SQL> select * from le;
C1 C2
----- --------------------------------------------------
123 long column values
3. 원본 table과 같은 구조를 갖는 table (le2)를 빈 껍데기만 생성
SQL> create table le2
(c1 number,
c2 long);
SQL> desc le2
Name Null? Type
------------------------------- -------- ----
C1 NUMBER
C2 LONG
4. 아래와 같은 방법으로 table copy 수행
SQL> copy from scott/tiger@ora805 to scott/tiger@ora805 append le2 using select * from le;
-> 진행결과
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
1 rows selected from scott@ora805.
1 rows inserted into LE2.
1 rows committed into LE2 at scott@ora805.
5. copy 된 table (le2)를 query 해서 결과 확인