偶然看到有人提到用copy命令来进行数据的拷贝,于是乎试试是个啥东东...
COPY是SQL*PLUS提供的一个命令,用来在不同数据库间(oracle之间, oracle和其他数据库)进行表数据的拷贝。不过从9i的文档中看到,说这个command以后有可能会被deprecated, 看了这个命令的简单介绍,我觉得这个命令是个“鸡肋”。在Oracle之间进行表数据的拷贝完全可以不用这个命令,对于oracle和其他数据库进行数据的拷贝,我有点疑问,这个命令是sql*plus提供的,我不太清楚怎么通过sql*plus连接oracle以外的数据库。文档中给出的例子也都是oracle数据库间的数据拷贝。除此之外,copy只能支持以下几种类型的数据,CHAR 、Date、LONG、NUMBER、Varchar2.
Copy命令的语法如下,
COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)]
USING query
随便试了下用法,于是就作罢,没有深究...
User Frank下面有张表t, 有两条数据...
SQL> select *from t;
X
----------
2
2
现在用copy,把表t中的数据拷贝到表t中,用的是append模式,其实就相当于insert into t select * from t;
SQL> copy from frank/frank@10.80.15.117/orcl append t using select * from t;
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
2 rows selected from frank@10.80.15.117/orcl.
2 rows inserted into T.
2 rows committed into T at DEFAULT HOST connection.
SQL> select * from t;
X
----------
2
2
2
2