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

mac2022-06-30  97

今天 周六,我写了这个存储过程。用意:检查 数据库中是否有 该类的 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_OKAS 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_nameIF JOB_OLD_NAME IS NOT  NULL   THENDBMS_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);  --删除jobEND 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;/

转载于:https://www.cnblogs.com/iyoume2008/p/4769888.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)