虚拟化容器,大数据,DBA,中间件,监控。

EXPDP如何导出两表关联后的数据

14 02月
作者:admin|分类:DBA运维

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

浏览1009 评论0
返回
目录
返回
首页
ORACLE 12c新特性 在线操作数据文件 ORACLE数据库中如何插入生僻字