EXPDP如何导出两表关联后的数据
EXPDP如何导出两表关联后的数据
以SCOTT用户的EMP表为例,说明如何使用QUERY选项导出两个表关联后的数据
1. 检查EMP表的empno值
SQL> select empno from emp order by 1;
EMPNO
----------
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
14 rows selected.
SQL>
2.创建测试表TEST01,并插入部分数据:
SQL>create table test01 (name varchar2(30),empno number(8));
SQL>
insert into test01 values ('test1',7788);
insert into test01 values ('test2',7900);
insert into test01 values ('test3',8999);
commit;
3.需要导出下面SQL对应的EMP表的数据:
select * from emp t1 where exists (select EMPNO from test01 t2 where t2.empno=t1.empno);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
4. 使用EXPDP导出数据:
$expdp scott/tiger directory=dump_dir dumpfile=emp.dmp tables=emp query='emp:" where exists (select EMPNO from test01 where ku$.EMPNO = test01.EMPNO)"'
. . exported "SCOTT"."EMP" 8.070 KB 2 rows
Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
5.说明:
这里需要使用ku$作为表的别名,否则表的所有记录都会被导出。
相关参考:
https://docs.oracle.com/database/121/SUTIL/GUID-CDA1477D-4710-452A-ABA5-D29A0F3E3852.htm#SUTIL860
目录 返回
首页