数据库之间复制表数据的方法汇总:
1.EXP/IMP
C:Documents and SettingsAdministrator>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 SettingsAdministrator>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: 名称已由现有对象使用