ITPub博客

首页 > 数据库 > Oracle > Oracle Scheduler(3)调用批处理

Oracle Scheduler(3)调用批处理

原创 Oracle 作者:zhenghaishu 时间:2015-10-23 12:32:55 0 删除 编辑

Oracle Scheduler调用批处理(2)

 

(一)用system用户创建一个表

create table test20151021(id int);

 

(二)在D盘根目录下创建test.sql,内容为

declare

  i int;

begin

  for i in 1..5

  loop

    insert into test20151021 values(i);

  end loop;

  commit;

end;

/

 

 

(三)在D盘根目录下创建test.bat,内容为

sqlplus system/oracle@local @D:\test.sql

 

注意:这里@D:\test.sql建议写成全路径,而不要使用相对当前路径@test.sql。原因是假如直接双击执行test.bat,因为test.sql和test.bat都位于同一路径(D盘根目录)下,@test.sql等价于@D:\test.sql。但是如果使用PLSQL Developer来执行下一步骤时,当前路径就不再是D盘根目录了,这个时候@test.sql不等于@D:\test.sql,也就无法往test20151021里插入数据。

 

(四)用Oracle Scheduler创建Job来调用test.bat

BEGIN 

  DBMS_SCHEDULER.CREATE_JOB ( 

    job_name         => 'test_job', 

    job_type          => 'EXECUTABLE', 

    job_action        => 'D:\test.bat', 

    start_date         => sysdate, 

    repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',

    enabled      => TRUE); 

END;

/

 

这里start_date和repeat_interval两个参数决定了每隔一分钟执行一次批处理,第一次是立刻执行

job_type目前支持三种类型: 

PLSQL_BLOCK,PL/SQL块 

STORED_PROCEDURE,存储过程

EXECUTABLE,外部程序可以是一个shell或批处理脚本,也可以是操作系统级别的指令 

  

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29485627/viewspace-1815841/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-14

  • 博文量
    112
  • 访问量
    1057344