分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
官方文档说明:SQL*Plus COPY Command
Copy命令可以实现不同Oracle数据库间的数据的复制,也是可以实现同一数据库的数据复制,其性能表现和导入/导出相同。原理图:
根据9i文档,说Copy命令未来会不支持,但实际上Oracle 11g仍然支持Copy命令,只是未写入11g的文档里,未来12C不知道还支不支持。
Copy也有明显的缺点,Copy只支持五种数据类型,Char,Date,Long,Number,Varchar2,8i之后Oracle数据库新增的数据类型都不支持。
使用方法:
1.首先确保TNS里记录了源Instance和目标Instance的连接信息;
2.运行SQL * Plus(无需连接具体的Instance)
sqlplus /nolog
3.运行Copy命令
Copy命令的语法:
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
Copies data from a query to a table in a local or remote database. COPY supports the following datatypes:
Example:
copy from user1/password1@source_instance to user2/password2@dest_instance create emp2 using select * from emp;
上边的命令会从source_instance中把emp数据拷贝到dest_instance中的emp2表。
数据库内的复制,也可以使用Copy命令,Example:
copy from scott/password@ptian to scott/password@ptian create emp2 using select * from emp;
这就有点类似于CREATE TABLE empx AS (SELECT * FROM emp);
根据Tom的说法,Copy的效率可能会比CREATE TABLE ... AS ...(数据库间的复制也可以使用Create table...as,通过database Link)差,因为Copy是把数据从一个Instance拷贝到sqlplus,再从sqlplus插入另外一个Instance。
而CREATE TABLE ... AS ...是把一个数据库的数据直接插入到第二个数据库,所以效率会高一些。
Copy 命令的四种模式
其他说明
如果copy命令比较长,可以在分行时每行末尾必须有续行符(-),最后一行不加。
copy from scott/welcome@ptian -to scott/welcome@ptian-create empy-using select * from emp-where rownum = 1
参考:
http://docs.oracle.com/cd/B10500_01/server.920/a90842/apb.htm
http://stackoverflow.com/questions/8944156/how-to-copy-data-from-one-database-table-to-another-database-table
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:4774938200346214569
转载请注明出处:http://blog.csdn.net/pan_tian/article/details/9932201