问题:
AIX环境下命令行方式使用Oracle的逻辑备份expdp的exclude特性时,总是出现以下错误:
expdp test/1234 directory=BACKUP dumpfile=test_20160512.dmp logfile=test_20160512.log include=table:"in('test01')"
解决:
改为
expdp test/1234 directory=BACKUP dumpfile=test_20160512.dmp logfile=test_20160512.log include=table:"in('test01')"
正常导出。
总结:
检查语法很长时间都没找到语法错误,上网查了后才发现原因在这里:
http://www.oraclefaq.net/2007/03/09/expdp-datapump-excludeinclude-parameters/
实际使用时,脚本如果写在参数文件中,则不用转义时也不会存在语法错误;但如果要在命令行中直接写,就必须加上转义字符:
windows:
expdp test/1234 directory=BACKUP dumpfile=test_20160512.dmp logfile=test_20160512.log include=table:"in('test01')"
linux
expdp test/1234 directory=BACKUP dumpfile=test_20160512.dmp logfile=test_20160512.log include=table:"in('test01')"