利用SCHEDULER调用shell脚本

10gSCHEDULER的一个重要的功能是可以调用操作系统命令或SHELL脚本。而在10g以前,这个功能只能通过外部存储过程来实现。

 

 

下面是一个简单的例子,首先编辑一个test.sh脚本:

#!/usr/bin/ksh
echo abc >> /home/xxx/a.txt

注意,#!/usr/bin/ksh是必须的,否则JOB运行会出现ORA-27369错误。

给这个shell设置执行权限:

$ chmod 744 test.sh

下面就可以在数据库中建立PROGRAM

SQL> BEGIN
  2     DBMS_SCHEDULER.CREATE_JOB(
  3             JOB_NAME => 'J_TEST',
  4             JOB_TYPE => 'EXECUTABLE',
  5             JOB_ACTION => '/home/xxx/test.sh',
  6             ENABLED => TRUE,
  7             AUTO_DROP => TRUE);
  8  END;
  9  /

PL/SQL procedure successfully completed.

SQL> SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'J_TEST';

no rows selected

SQL> COL JOB_NAME FORMAT A30
SQL> SELECT TO_CHAR(LOG_DATE, 'YYYY-MM-DD HH24:MI:SS.FF TZH:TZM'),
  2     JOB_NAME,
  3     STATUS
  4  FROM DBA_SCHEDULER_JOB_RUN_DETAILS
  5  WHERE JOB_NAME = 'J_TEST';

TO_CHAR(LOG_DATE,'YYYY-MM-DDHH24:MI: JOB_NAME                       STATUS
------------------------------------ ------------------------------ ----------------------
2012-03-12 18:41:16.275361 +08:00    J_TEST                         SUCCEEDED

检查shell运行信息:

SQL> EXIT
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[xxx@hpserver2 ~]$ more a.txt
abc
[xxx@hpserver2 ~]$ ls -l a.txt
-rw-r--r-- 1 xxx oinstall 4 Mar 12 18:41 a.txt

通过这个简单的方法,就可以实现操作系统命令的调用。

 

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

转载于:http://blog.itpub.net/4227/viewspace-718391/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值