oracle 命令行copy,copy 命令(转载)

使用SQL*Plus的COPY命令,可以在数据库间进行数据复制。

1、将一个远程数据库的数据复制到本地数据库

............................................[@more@]

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 -

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都是可以设置的参数,把这些参数设大一点,对效率有一定的提高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值