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