Admin/admin

LONG type이 있는 table copy 방법

Qhtlr 2007. 7. 26. 12:09

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 해서 결과 확인