oracle 如何复制大数据量的数据??

目前有一个表数据量为3000万行,需要转移到另外一个表中,不同用户,同一个数据库实例,数据中有blob类型,如何快速复制数据,insert into .... select ...并行执行快??还是用游标循环插入快??? 目的是为了转移历史数据,新的表结构无法改变。

Oracle 9/10
可以使用 exp 导出 Imp 导入

===== 导出、导入 单个表的情况。

导出 TEST_MAIN,TEST_SUB 这2个表
EXP test/test@源数据库 file=test.dmp tables=(TEST_MAIN,TEST_SUB)

导入 TEST_MAIN,TEST_SUB 这2个表
IMP test2/test2@目标数据库 file=test.dmp tables=(TEST_MAIN,TEST_SUB)

==============================

Oracle 10g 开始, 新增数据泵工具 导出导入 的工具.

前面需要一些 环境配置

数据泵工具导出的步骤:
1、创建DIRECTORY
create directory dir_dp as 'C:/OracleData'

2、授权
Grant read,write on directory dir_dp to obpos;

EXPDP 按表导出:

EXPDP obpos/obpos tables="OBPOS"."ROOM","OBPOS"."ROOMBOOKD" dumpfile=expdp_Room.dmp logfile=expdp_Room.log directory=dir_dp job_name=my_job

授权
Grant read,write on directory dir_dp to test;

IMPDP 按表导入:
impdp obpos/obpos dumpfile=obpos.dmp logfile=obpos.log directory=dir_dp tables=MR_USER job_name=my_job
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-24
create table 目标表 as select * from 源表 where 0=1;

alter table 目标表 nologging;

insert /*+ append parallel */ into 目标表 select /*+ parallel */ * from 源表;
commit;

alter table 目标表 logging;
第2个回答  2013-08-25
来学习的哈哈哈
相似回答