SQL> help copy
COPY
----
COPY copies data from a query to a table in a local or remote
database. COPY supports CHAR, DATE, LONG, NUMBER and VARCHAR2.
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
where database has the following syntax:
username[/password]@connect_identifier
使用SQL*Plus的COPY命令,可以在数据库间进行数据复制。
1、将一个远程数据库的数据复制到本地数据库
2、将本地数据库的数据复制到远程数据库
3、将一个远程数据库的数据复制到另一个远程数据库
一般情况下,我们都会登陆一个数据库,然后从另一个数据库中拷贝数据。
SQL>copy from scott/tiger@orcl -
replace emp -
using select * from emp;
注:COPY语句中使用了“-”符号,这是续行符。
对于 {APPEND|CREATE|INSERT|REPLACE}这几个选项,一般推荐使用replace,为什么呢?
因为在目标表不存在的情况下,它就create,如果目标表存在的情况下,它会先删掉旧表,然后创建新表。
当然,要根据自己实际的需要来选择不同的选项。
在不同数据库之间复制数据,我一般选择ctas的方式。两种方法,哪一个效率比较高,这个我没有比较过。不过,COPY有一个特点是CTAS无法比拟的。用CTAS的话,一定要在本地数据库上有链接远程数据库的数据库链接,而COPY就没有这个限制了。
通过实践比较,发现COPY的效率跟CTAS的效率不是在一个层次上的!CTAS只有几十秒就行了,而COPY却要好几分钟!
在执行COPY命令时,可以看到如下语句:
Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 80. (long is 80)
其实,arraysize,copycommit,long都是可以设置的参数,把这些参数设大一点,对效率有一定的提高。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17826/viewspace-911915/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17826/viewspace-911915/