oracle expdp 按条件导出

1.expdp按查询条件导出多张表数据

示例1:如果where条件里无字符串

语句:

expdp scott/oracle directory=xx dumpfile=emp.dmp tables=emp query='emp:"WHERE deptno=20"';

如果是多张表

语句:

expdp scott/oracle directory=xx dumpfile=emp.dmp tables=emp,emp2,emp3 query='emp:"WHERE deptno=20"','emp2:"WHERE age=20"','emp3:"WHERE year=2020"'

说明:query参数后内容格式为固定格式:'表1:"where 字段=<>值"','表2:"where 字段=<>值"',……

示例2:要求把user_name='hh'的这条数据导出来如果query里的条件是字符串的话,就要用下面这种方法:

先写出一个参数文件txt.par
dumpfile=1emp.dmp
directory=xx
tables=(emp)
query=(emp:"where username='hh'")
然后执行导出语句:
expdp scott/oracle parfile=txt.par

如果是多张表

tables=(emp1,emp2,emp3)

query=(emp:"where username='hh'",emp2:"where username='hh'",emp3:"where username='hh'")

注:如果query里的条件是字符串还用案例1的方法,就会报错
ORA-31693: Table data object "SCOTT"."EMP" failed to load/unload and is being skipped due to error:
ORA-00904: "hh": invalid identifier

猜你喜欢

转载自www.cnblogs.com/maowenjie/p/12933295.html