我有一个双击的批处理脚本,其中填充了一个从.csv导入的值的表。我想用PL / SQL脚本执行该脚本。所以我做到了:
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB( job_name => 'e_job',
job_type => 'EXECUTABLE',
job_action => 'C:\WINDOWS\system32\cmd.exe',
job_class => 'DEFAULT_JOB_CLASS',
comments => 'Job to call batch script on Windows',
auto_drop => FALSE,
number_of_arguments => 3,
enabled => FALSE);
SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE( job_name => 'e_job', argument_position => 1, argument_value => '/q');
SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE( job_name => 'e_job', argument_position => 2, argument_value => '/c');
SYS.DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE( job_name => 'e_job', argument_position => 3, argument_value => '"E:\temp\StartLoad.bat"');
SYS.DBMS_SCHEDULER.ENABLE( 'e_job' );
END;
BEGIN
DBMS_SCHEDULER.RUN_JOB('example_job');
END;
我没有收到任何错误,但是我的表没有任何值。我必须说,如果在Windows资源管理器中双击执行我的脚本就可以正常工作
在CREATE_JOB
通话中,您已将新作业命名为“ e_job”,但在RUN_JOB
通话中,您正在运行“ example_job”。更改RUN_JOB
呼叫以调用“ e_job”。
我还建议您在批处理文件中执行明确指示批处理文件已运行的操作-尝试echo I ran OK! > c:\e_job.log
在批处理文件的最开始处添加。这样,您可以通过查找日志文件来确定批处理文件已执行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句