在线QQ客服:1922638
专业的SQL Server、MySQL数据库同步软件
官方文档描述:SQL * Plus COPY命令
复制该命令可以在不同的Oracle数据库之间复制数据,也可以在同一数据库中复制数据,其性能与导入性能相同。/出口。示意图:
根据9i文件,说将来将不再支持”复制”命令,但实际上Oracle 11g仍支持”复制”命令,但是它没有写在11g文档中。将来,12C不知道是否会支持它。
复制也有明显的缺点。复制仅支持五种数据类型。不支持8i之后的Oracle数据库中的Char,Date,Long,Number,Varchar2和新数据类型。
使用方法:
1.首先确保源实例和目标实例是记录在TNS连接信息中;
2.运行SQL * Plus(无需连接到特定实例)
sqlplus/nolog
3.运行复制命令
复制命令的语法:
COPY {FROM 数据库 | TO 数据库 |从数据库到数据库} {APPEND |创建|插入|替换} destination_table [(列,列,列,…)]
使用查询
其中数据库具有以下语法:
用户名[/密码] @connect_identifier
将数据从查询复制到本地或远程数据库中的表。 COPY支持以下数据类型:
CHAR
日期
Long
NUMBER
VARCHAR2
示例:
上面的命令会将emp数据从source_instance复制到dest_instance中的emp2表。
在数据库中复制,也可以使用”复制”命令,例如:
这有点类似于CREATE TABLE empx AS(SELECT * FROM emp);
根据Tom的说法,复制可能比CREATE TABLE…AS…(数据库之间的复制也可以通过数据库链接使用Create table…)效率更高,因为复制是从以下位置复制数据:一个实例添加到sqlplus,然后从sqlplus插入另一个实例。
CREATE TABLE…AS…将一个数据库的数据直接插入到第二个数据库中,因此效率会更高。
复制命令的四种模式
* replace The句子指定要创建的表的名称。如果目标表已经存在,请删除并替换为包含复制数据的表。如果不存在,则创建目标表。
*使用create子句可以避免覆盖现有表。如果目标表已存在,则复制报告错误;否则,报告错误。如果它不存在,则创建目标表。
* insert将数据插入到现有表中。将查询的行插入目标表。如果目标表不存在,复制将返回错误。使用插入时,using子句必须为目标表的每一列选择相应的列。
* append将查询的行插入到目标表中。如果不存在,请创建目标表并插入。
其他说明
如果复制命令较长,则每行的结尾必须在ULink分支(-)处,最后一行未添加。
参考:
http://docs.oracle.com/cd/B10500_01/server.920/a90842/apb.htm
http://stackoverflow.com/questions/8944156/how-to-copy-data-从一个数据库表到另一个数据库表
http://asktom.oracle.com/pls/apex/fp=100:11:0::::P11_QUESTION_ID :4774938200346214569
转载时请注明出处:http://blog.csdn.net/pan_tian/article/details/9932201
\