日期:2014-05-16  浏览次数:20488 次

[ORACLE]数据库之间复制表

----------------------------------------
-------------ORACLE数据库管理学习系列 By Cryking------------
------------------------转载请注明出处,谢谢!------------------------- 

数据库之间复制表数据的方法汇总:

1.EXP/IMP

   

C:\Documents and Settings\Administrator>EXP GW/***@R5DEV_223 FILE=C:\TEST1.DUMP TABLES=(admin_changelog)  GRANTS=N

Export: Release 11.2.0.1.0 - Production on 星期五 10月 11 13:27:11 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


EXP-00056: 遇到 ORACLE 错误 28002
ORA-28002: the password will expire within 7 days
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出对表/视图/序列/角色的授权

即将导出指定的表通过常规路径...
. . 正在导出表                 ADMIN_CHANGELOG导出了          28 行
成功终止导出, 没有出现警告。

C:\Documents and Settings\Administrator>IMP cry/cry FROMUSER=CRY TOUSER=SCOTT FILE=C:\TEST1.DUMP TABLES=(admin_changelog) IGNORE=Y

Import: Release 11.2.0.1.0 - Production on 星期五 10月 11 13:33:41 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V11.02.00 创建的导出文件

警告: 这些对象由 GW 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 GW 的对象导入到 SCOTT
. . 正在导入表               "ADMIN_CHANGELOG"导入了          28 行
成功终止导入, 没有出现警告。


注意导出角色和导入角色最好一致,不然需要使用DBA角色,然后加FROMUSER、TOUSER参数来实现导出或导入。


2. 使用DBLINK

13:41:11 SCOTT@orcl> create database link TEST_LINK CONNECT TO GW IDENTIFIED BY "******" USING 'R5DEV_223';

数据库链接已创建。

已用时间:  00: 00: 00.07
13:41:36 SCOTT@orcl> CREATE TABLE admin_changelog AS SELECT * FROM admin_changelog@TEST_LINK;

表已创建。

已用时间:  00: 00: 00.81

3. SQLPLUS的COPY命令

13:42:16 SCOTT@orcl> copy from GW/******@R5DEV_223 to SCOTT/TIGER@ORCL REPLACE admin_changelog USING SELECT * FROM admin_changelog;

数组提取/绑定大小为 15。(数组大小为 15)
将在完成时提交。(提交的副本为 0)
最大 long 大小为 100000。(long 为 100000)
表 ADMIN_CHANGELOG 已删除。

表 ADMIN_CHANGELOG 已创建。

28 行选自 GW@R5DEV_223。
   28 行已插入 ADMIN_CHANGELOG。
   28 行已提交至 ADMIN_CHANGELOG (位于 SCOTT@ORCL)。

注:REPLACE是先删除再创建,CREATE直接创建,如存在该对象则会报错:ORA-00955: 名称已由现有对象使用