我正在尝试从 Oracle 11g 创建一个在我的服务器上运行 .bat 文件的作业。
.bat 文件包含一些简单的内容
@echo off
echo Hello World
pause
The JOB is programmed as follows.
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'TEST_BAT',
job_type => 'EXECUTABLE',
job_action => 'host cmd /c D:\Report\TEST.bat',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=12; BYMINUTE=0; BYSECOND=0',
enabled => TRUE
);
END;
我也尝试按照以下方式完成作业,但仍然出现相同的错误
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB( job_name => 'TEST_BAT',
job_type => 'EXECUTABLE',
job_action => 'C:\WINDOWS\system32\cmd.exe',
comments => 'Job to call batch script on Windows',
auto_drop => FALSE,
number_of_arguments => 1,
enabled => FALSE);
SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE( job_name => 'TEST_BAT', argument_position => 1, argument_value => 'D:\Tests\Export\TEST.bat');
SYS.DBMS_SCHEDULER.ENABLE( 'TEST_BAT' );
END;
用SYS用户运行,以防是权限问题,但还是不行。
这是工作日志
ORA-27370: 作业从站无法启动 EXECUTABLE 类型的作业
ORA-27300: 操作系统相关操作: 访问作业调度程序 服务失败,状态:109
ORA-27301:操作系统故障消息: 系统找不到指定的文件。
ORA-27302: 发生故障 at: sjsec 9
ORA-27303: 附加信息: 系统无法 找到指定的文件。
我期待 .bat 文件在我的服务器上执行,并带有“Hello World”