Oracle 使用expdp导出转储文件时,Ora-39000错误的转储文件规范

Oracle 使用expdp导出转储文件时,Ora-39000错误的转储文件规范,oracle,batch-file,database-backups,expdp,Oracle,Batch File,Database Backups,Expdp,我正在尝试执行windows计划程序作业,该作业将每天创建一次数据库备份。因此,我创建了批处理文件SYSTEM\u BACKUP.bat,其中包含以下数据: @echo off setlocal EnableDelayedExpansion expdp SYSTEM/SYSTEM@XE PARFILE=export_dump.par ExpX.Dimp.PAR文件包含的信息: DIRECTORY=cron_jobs DUMPFILE=SYSTEM_!date:~10,4!!date:~6,2

我正在尝试执行windows计划程序作业,该作业将每天创建一次数据库备份。因此,我创建了批处理文件
SYSTEM\u BACKUP.bat
,其中包含以下数据:

@echo off
setlocal EnableDelayedExpansion
expdp SYSTEM/SYSTEM@XE PARFILE=export_dump.par

ExpX.Dimp.PAR文件包含的信息:

DIRECTORY=cron_jobs
DUMPFILE=SYSTEM_!date:~10,4!!date:~6,2!.!date:~4,2!.dmp
LOGFILE=SYSTEM.log
SCHEMAS=B1,B2
CONTENT=ALL
当我试图运行
SYSTEM\u BACKUP.bat
时,我得到的错误如下

  ORA-39001:invalid argument value,
  ORA-39000 bad dump file specification,
  ORA-39087:directory name ratormonitor_!date is invalid. 

我尝试用当前的DATETMETHAMP附加到文件中创建转储文件,所以转储文件名应该看起来像这个代码< Stuly2015.02.03.37.02906831,但是得到了一个错误。< /代码> < /P> < P>您的ExpExpDim.Par文件包含

DUMPFILE=I_!date:~10,4!!date:~6,2!.!date:~4,2!.dmp
但由于这不是批处理文件的一部分,因此读取该文件的进程expdp.exe根本不知道延迟扩展或变量扩展

因此,在每次启动expdp之前,必须通过批处理文件创建此文件

@echo off
setlocal EnableDelayedExpansion
(
    echo DIRECTORY=cron_jobs
    echo DUMPFILE=I_!date:~10,4!!date:~6,2!.!date:~4,2!.dmp
    ...
) > export_dump.par
expdp SYSTEM/SYSTEM@XE PARFILE=export_dump.par

@jeb我现在编辑了我的问题它仍然是重复的,但是错误是:您需要在批处理中添加
setlocal enabledayedexpansion
,然后
扩展工作。还有
中的斜杠
/
!日期:~6,2!/!日期:~4,2!。dmp应该是一个
@jeb我已经根据你的建议编辑了我的问题,但仍然得到相同的错误。我对这个概念很陌生。我已经检查了你以前的问题,但是没有从这个问题中得到任何帮助,我的问题仍然没有解决这就是为什么我编辑了我的问题。然后你应该看看你的日期变量是如何格式化的,因为格式是本地化的。关于这一点有足够多的问题,好的,我会调查一下