使用 DBMS_SCHEDULER执行外部命令

使用  DBMS_SCHEDULER可以很方便的执行操作系统下的命令或脚本,这样在执行一些定时脚本时就不需要依赖于操作系统的计划任务或crontab了。如下,创建定时执行exp导出的定时任务:
一。创建job
1.创建job,执行定时exp导出
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
   job_name          =>  'JOB_EXP_XJNY_CHARISMA',
   job_type          =>  'EXECUTABLE',
   job_action        =>  'C:\oracle\product\11.2.0\dbhome_1\bin\exp xjny/xjny tables=at_naizan file=C:\工作相关\数据导入\at_naizan.dmp',
   start_date        =>  SYSDATE,
--  repeat_interval   =>  'FREQ = DAILY; INTERVAL = 1');
   repeat_interval   =>  'FREQ = MINUTELY; INTERVAL = 3');
END;
/


2. 创建job后,需要启用该job
BEGIN
DBMS_SCHEDULER.ENABLE ('JOB_EXP_XJNY_CHARISMA');
END;
/


3.禁用job
BEGIN
DBMS_SCHEDULER.DISABLE ('JOB_EXP_XJNY_CHARISMA');
END;
/

4.删除job
BEGIN
   DBMS_SCHEDULER.DROP_JOB('JOB_EXP_XJNY_CHARISMA');
END;
/


二 .查看scheduler job的执行日志

select OWNER,JOB_NAME,ENABLED,JOB_ACTION,RUN_COUNT,LAST_START_DATE,NEXT_RUN_DATE
from  dba_SCHEDULER_JOBs
where job_name='JOB_EXP_XJNY_CHARISMA';

SELECT OWNER,JOB_NAME,LOG_DATE,OPERATION,STATUS,USER_NAME
FROM DBA_SCHEDULER_JOB_LOG WHERE JOB_NAME='JOB_EXP_XJNY_CHARISMA';

select * from  DBA_SCHEDULER_JOB_RUN_DETAILS WHERE JOB_NAME = 'JOB_EXP_XJNY_CHARISMA';

在windows下需要开启OracleJobSchedulerSID的服务才能成功执行相应的job,否则报27370错误,如下:
"ORA-27370: 作业的从属进程无法启动类型为 EXECUTABLE 的作业
ORA-27300: 操作系统系统相关操作: accessing job scheduler service 失败, 状态为: 2
ORA-27301: 操作系统故障消息: 系统找不到指定的文件。
ORA-27302: 错误发生在: sjsec 6a
ORA-27303: 附加信息: 系统找不到指定的文件。

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

转载于:http://blog.itpub.net/10972173/viewspace-722443/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值