ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用SCHEDULER调用shell脚本

利用SCHEDULER调用shell脚本

原创 Linux操作系统 作者:yangtingkun 时间:2012-03-10 23:16:12 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10351826