출처: https://metalink.oracle.com/
How to Copy Data from a Table with a LONG Column into an Existing Table
Purpose:
========
The purpose of this article is to provide a working example of how to COPY data from a table with a LONG column into another existing table with the same structure definition. This document is especially useful for helping avoid an ORA-997 error as you try to achive the above objective.
Scope & Application:
====================
This article is intended for use by anyone who is receiving an ORA-997 error when they try to create a new table with a LONG column from an existing table using the 'Create Table As Select' (CTAS) command.
You receive the same ORA-997 error even when you try to INSERT data from the table with a LONG column into another table with a LONG column using the INSERT INTO ... command.
The only way to resolve this problem is to use the SQL*Plus COPY command as discussed in this article.
This article is applicable for Oracle versions 7.3.4 through 8.1.X.
How to Copy Data from a Table with a LONG Column into an Existing Table:
========================================================================
Example:
--------
$ sqlplus scott/tiger@otcsol1_v734
SQL> create table le
(c1 number,
c2 long);
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
SQL> create table le2
(c1 number,
c2 long);
SQL> desc le2
Name Null? Type
------------------------------- -------- ----
C1 NUMBER
C2 LONG
SQL> copy from scott/tiger@otcsol1_v734 to scott/tiger@otcsol1_v734 -
> 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@otcsol1_v734.
1 rows inserted into LE2.
1 rows committed into LE2 at scott@otcsol1_v734.
Notes:
------
o You must use the connect string in the FROM and TO clauses of the COPY command as shown above.
o You must use the "-" ( dash) at the end of each line if you want to break the command into a number of lines. Otherwise, the COPY command may fail.
o This has been tested using a V734 connect string as well as other releases.
SQL> select * from le2;
C1 C2
----- --------------------------------------------------
123 long column values
References:
===========
SQL*Plus: User's Guide and Reference
'::: DB ::: > Oracle' 카테고리의 다른 글
권순용의 DB 이야기 - DB 전문가로 산다는 것 (1) (0) | 2010.02.10 |
---|---|
SQL/PLUS COPY 명령어 (0) | 2010.01.11 |
Using PL/SQL Copy a LONG or LONG RAW into Another Table Fails with ORA-997 (0) | 2010.01.11 |
HSODBC 를 이용하여 Oracle -> MSSQL 이기종 간에 DB Link 로 연결하는 방법 (0) | 2009.12.11 |
How to setup generic connectivity (HSODBC) for 32 bit Windows (Windows NT, Windows 2000, Windows XP, Windows 2003) (0) | 2009.12.11 |