使用data pump驱动的外部表移动数据
比如我们有一个报表的数据,准备从一个数据库A中移动到另一个数据库B中,如何实现?
这个问题,我们使用带data pump驱动的外部表方式,很容易实现,具体方法如下:
1.在A库中,使用data pump驱动创建一个外部表,把报表的数据全部卸载到指定数据文件中:
1.1 创建一个目录
create directory exp_dir as '/home/oracle/';
grant read,write on directory exp_dir to hr;
1.2 把报表数据通过外部表方式卸载到exp_dir目录下面的两个文件下面:
create table extab_emp_dp
(employee_id number(4),
last_name varchar2(30),
hire_date date,
salary number)
organization external
(type oracle_datapump
default directory exp_dir
location ('empdp.exp','empdp1.exp')
)
parallel
as
select employee_id,last_name,hire_date,salary from hr.employees;
1.3 查看/home/oracle/ 下,应该产生两个二精致文件:
ls /home/oracle/empdp*.exp
2.把 /home/oracle/empdp.exp,/home/oracle/empdp1.exp拷贝到B 库中
3.在B库上通过外部表方式,装载数据
3.1 创建一个目录
create directory exp_dir as '/home/oracle/';
grant read,write on directory exp_dir to hr;
3.2 装载数据
create table extab_emp_dp
(employee_id number(4),
last_name varchar2(30),
hire_date date,
salary number)
organization external
(type oracle_datapump
default directory exp_dir
location ('empdp.exp','empdp1.exp')
)
parallel
3.3 查看数据
select * from extab_emp_dp;