[英]Oracle Job Scheduler(Creating a Local External Job That Runs a DOS Command) : couldn't execute Rscript.exe or javac.exe
test.bat的
mkdir C:\Users\user\aaTEST2
javac Test.java
Rscript C:\Users\user\a.R
上面是我的蝙蝠文件。 当我通过在窗口命令上键入来执行bat文件时,它进行得很好。 但是当我执行oracle job Scheduler时:
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'TEST_JOB2',
job_type => 'EXECUTABLE',
number_of_arguments => 3,
job_action => 'C:\windows\system32\cmd.exe',
auto_drop => FALSE);
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE('TEST_JOB2',1,'/c');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE('TEST_JOB2',2,'C:\Users\user\test.bat');
DBMS_SCHEDULER.ENABLE('TEST_JOB2');
END;
它的执行无需执行javac和Rscript。 只有mkdir有效。 为什么? 问题是什么? 我的oracle版本12.1.0.1.0。
使用以下代码在创建作业之前创建凭据
BEGIN
DBMS_CREDENTIAL.CREATE_CREDENTIAL(
CREDENTIAL_NAME => 'credintial', ----- credintial name give by u
USERNAME => 'dons', ----- os username
PASSWORD => 'password'); ----- os password
END;
/
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(JOB_NAME=>'loader_file', --- job name
JOB_ACTION=>'/home/oracle/loader.sh', --- executable file with path
JOB_TYPE=>'executable', ----- job type
NUMBER_OF_ARGUMENTS=>7, -- parameters in numbers
ENABLED=>false,
AUTO_DROP =>true,
CREDENTIAL_NAME=>'credintial', -- give credentials name which you have created before "credintial"
COMMENTS=> 'loader_file scheduler ');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 1, ARGUMENT_VALUE => 'para 1');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 2, ARGUMENT_VALUE => 'para 2');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 3, ARGUMENT_VALUE => 'para 3');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 4, ARGUMENT_VALUE => 'para 4');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 5, ARGUMENT_VALUE => 'para 5');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 6, ARGUMENT_VALUE => 'para 6');
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(JOB_NAME =>'loader_file', ARGUMENT_POSITION => 7, ARGUMENT_VALUE => 'para 7');
DBMS_SCHEDULER.RUN_JOB('loader_file');
end;
/
begin
DBMS_SCHEDULER.DROP_JOB('loader_file');
end;
/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.