• 小试牛刀-嘿嘿,创建job了


    今天 周六,我写了这个存储过程。用意:检查 数据库中是否有 该类的 job,如果有那么取job_name  赋值给 job_old,    把job_old加上时间戳 改造成 job_new。那么job_old 和job_new 名称是相似的,完成第一步;第二步 if判断 ,如果系统中有 job,那么删除 旧的job。第三步 采用新的job_new 创建新的job。以此类推

    CREATE OR REPLACE PROCEDURE CREATE_DROP_JOB_OK

    AS

     JOB_OLD_NAME VARCHAR2(20);
     JOB_NEW_NAME VARCHAR2(20);

      BEGIN

      JOB_NEW_NAME :='JOB_BOOK_YUQI'||TO_CHAR(SYSDATE,'SS') ; --给新job命名 


      SELECT JOB_NAME INTO JOB_OLD_NAME  FROM USER_SCHEDULER_JOBS WHERE JOB_NAME LIKE 'JOB_BOOK_YUQI%';
      --检查数据库中已经存在的旧job,取出job_name 传给变量 job_old_name



    IF JOB_OLD_NAME IS NOT  NULL   THEN

    DBMS_OUTPUT.put_line('JOB_OLD_NAME IS '||JOB_OLD_NAME);  --输出job_old_name 确认是否准确

    DBMS_OUTPUT.put_line(JOB_OLD_NAME||' IS Being droped '||TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'));

    SYS.DBMS_SCHEDULER.DROP_JOB(JOB_NAME=> JOB_OLD_NAME);  --删除job

    END IF;


    DBMS_OUTPUT.put_line('JOB_NEW_NAME IS '||JOB_NEW_NAME);  --输出job_new_name 确认是否准确
    DBMS_OUTPUT.put_line(JOB_NEW_NAME||' IS Being created '|| TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS'));


    DBMS_SCHEDULER.CREATE_JOB(JOB_NAME                  => JOB_NEW_NAME,           --指定job的名称
                                    JOB_TYPE            => 'STORED_PROCEDURE',           --指定job操作的类型
                                    JOB_ACTION          => 'BOOK_YUQI',                  --指定job的操作
                                    START_DATE          => TO_DATE('20-08-2015 17:13:20', 'DD-MM-YYYY HH24:MI:SS'),     --指定job开始运行的时间
                                    REPEAT_INTERVAL     => 'FREQ=MINUTELY;INTERVAL=1',                                  --指定job运行的频率 ,常见的 daily、minutely
                              --      END_DATE            => TO_DATE('21-08-2015 17:13:20', 'DD-MM-YYYY HH24:MI:SS'),     --指定job结束运行的时间
                                    JOB_CLASS           => 'DEFAULT_JOB_CLASS',                                         --指定job的级别
                                    ENABLED             => TRUE,                                                        --创建job后是否启用job
                                    AUTO_DROP           => FALSE,                                                       --job是否自动删除 (默认情况下 job运行成功后,会自动删除)
                                    COMMENTS            => 'MY NEW JOB');



    EXCEPTION WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE(SQLCODE||SQLERRM);

    END CREATE_DROP_JOB_OK;
    /

  • 相关阅读:
    数据库概念
    Java编程练习01
    MySQL基本操作
    Tomcat配置
    JDK配置
    云谷分布式端口扫描与代理验证系统(一)简介
    测试平台系列(91) 编写oss管理页面
    测试平台系列(88) 完成邮件通知功能(附赠精美邮件模板)
    测试平台系列(90) 编写oss客户端
    测试平台系列(89) 编写执行测试计划功能
  • 原文地址:https://www.cnblogs.com/iyoume2008/p/4769888.html
Copyright © 2020-2023  润新知