在widows系统上写个bat脚本定时备份oracel数据库的,但一执行bat脚本就会报“LRM-00112: 参数 'logfile' 不允许有多个值”,网上资源都是说创建逻辑目录可能有空格,我就重新修改了逻辑目录还是不是行的,以为下面的语句的问题:我都是习惯生产的名字为back_20190419.log这样形式的没有双引号,这个语句在我在其它服务器执行一点都没有问题的
expdp %bakdbname%/%bakdbpasswd%@%sid% directory=BACKDIR dumpfile=%dumpbame%_%BACKUPDATE%.dmp logfile=%dumpbame%_%BACKUPDATE%.log
加上双引号就可以执行了也确实不报错了
expdp %bakdbname%/%bakdbpasswd%@%sid% directory=BACKDIR dumpfile="%dumpbame%_%BACKUPDATE%.dmp" logfile="%dumpbame%_%BACKUPDATE%.log"
但是还是没有解决这个报错的问题,最后发现是bat批处理的时间机制问题的:用%time:~0,2%%time:~3,2%%time:~6,2%时有个问题, 就是如果TIME 是00点的时候,电脑显示的是0不是00所以%time:~0,2%就报错了。
例子:2019-4-22时间9:46:01
echo BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%
BACKUPDATE=20190422 94601(9前面是空格)
echo BACKUPDATE=