暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle DBMS_SCHEDULER执行bat文件

askTom 2017-09-14
668

问题描述

嗨,
我创建了一个bat文件来运行sqlldr,以将csv文件中的数据加载到Oracle中,并且我想自动执行它,因此我通过DBMS_SCHEDULER进行了尝试

执行DBMS_SCHEDULER.run_job ('daily_load ');
融洽的关系-
ORA-27369: 代码分类: 没有这样的文件或目录
ORA-06512: à "SYS.DBMS_ISCHED",ligne 196
ORA-06512: à "SYS.DBMS_SCHEDULER",ligne 486
ORA-06512: à ligne 1


dbms_scheduler.create_job (
作业名称 => “每日加载”,
job_type => '可执行',
job_action => 'c:\ Windows \ System32 \ cmd.exe ',
参数编号 => 2,
开始日期 => 系统戳,
重复间隔 => '频率 = 每小时; 每分钟 = 0',
end_date => NULL,

启用 => false,
注释 => '测试'
);


dbms_scheduler.set_job_argument_value (
作业名称 => “每日加载”,
参数 _ 位置 =>1,
参数值 => '/c'

);
dbms_scheduler.set_job_argument_value (
作业名称 => “每日加载”,
参数 _ 位置 =>2,
argument_value => 'C:\ orant10 \ BIN \ loadDB.bat'


);

DBMS_SCHEDULER.enable (
name => 'daily_load');

专家解答

我只是在我的机器上做了这个,没有问题-



C:\>type c:\temp\demo.cmd
@echo off
echo Hello > c:\temp\demo.out
dir c:\temp >> c:\temp\demo.out
exit

SQL> declare
  2    vname varchar(20) := 'DEMOJOB';
  3  BEGIN
  4    begin dbms_scheduler.drop_job (vname); exception when others then null; end ;
  5    dbms_scheduler.create_job(
  6      job_name => vname,
  7      job_type => 'EXECUTABLE',
  8      job_action => 'C:\Windows\System32\cmd.exe',
  9      number_of_arguments => 2,
 10      enabled => FALSE);
 11    dbms_scheduler.set_job_argument_value( job_name => vname, argument_position => 1, argument_value => '/c');
 12    dbms_scheduler.set_job_argument_value( job_name => vname, argument_position => 2, argument_value => 'c:\temp\demo.cmd');
 13    dbms_scheduler.enable( vname);
 14
 15  END;
 16  /

PL/SQL procedure successfully completed.
复制


因此,也许使用CMD文件而不是BAT文件。

另外,在Windows上,检查 “Oracle JobScheduler” 服务是否正在运行。如果没有运行,您将在警报日志中收到错误,例如,我禁用了服务,并且看到了以下内容:

2017-09-15T08:46:30.042872+08:00
Errors in file C:\ORACLE\diag\rdbms\db122\db122\trace\db122_j000_10140.trc:
ORA-12012: error on auto execute of job "MCDONAC"."DEMOJOB"
ORA-27370: job slave failed to launch a job of type EXECUTABLE
ORA-27300: OS system dependent operation:accessing job scheduler service failed with status: 2
ORA-27301: OS failure message: The system cannot find the file specified.
ORA-27302: failure occurred at: sjsec 5
ORA-27303: additional information: The system cannot find the file specified.

复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论