我有一个批处理脚本,双击该脚本,就可以用从.csv导入的值填充一个表。我想使用我执行过的PL/SQL script..so来执行该脚本:
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资源管理器中双击执行
发布于 2015-05-23 08:06:10
在示例调用中,您将新作业命名为‘e_ CREATE_JOB
’,但在RUN_JOB
调用中,您运行的是'example_ job‘。更改作业调用以调用‘e_ RUN_JOB
’。
我还建议您在批处理文件中执行一些明确指示批处理文件已经运行的操作-尝试在批处理文件的最开始添加echo I ran OK! > c:\e_job.log
。这样,您就可以通过查找日志文件来确定批处理文件是否已执行。
https://stackoverflow.com/questions/30405081
复制相似问题