今天 周六,我写了这个存储过程。用意:检查 数据库中是否有 该类的 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;
/

小试牛刀-嘿嘿,创建job了的更多相关文章

  1. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

  2. mxonline实战-1,创建应用及相应模型

        前言   环境说明:python3.5 + django2.0, 用的pycharm4.04专业版 课程视频地址 https://coding.imooc.com/learn/list/78. ...

  3. windows环境tomcat8配置Solr5.5.1

    前言 前前后后接触Solr有一个多月了,想趁着学习Solr顺便把java拾起来.我分别用4.X和5.X版本在windows环境下用jetty的方式.tomcat部署的方式自己搭建了一把.其中从4.x到 ...

  4. NServiceBus入门:启程(Introduction to NServiceBus: Getting started)

    原文地址:https://docs.particular.net/tutorials/intro-to-nservicebus/1-getting-started/ 侵删. 最好的学习NService ...

  5. Vue-router入门

    1.npm install vue-router --save-dev 安装路由包,在安装脚手架时实际上可以直接安装 2.解读核心文件 router/index.js文件 import Vue fro ...

  6. js创建节点,小试牛刀

    实现如下的功能 非常简单的一个小训练. 思想: 1.首先创建text和一个button 代码如下. <body> <input type="text" id=&q ...

  7. VS2015墙内创建ionic2 【利用nrm更换源,完美!】

    STEP 1 设置cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org   一句话建立cnpm STEP 2 安装nr ...

  8. VS2015墙内创建ionic2

    开始学习ionic2,试验各种方法,感觉以下是紧跟rc版本的最佳方案 STEP1 设置cnpm npm install -g cnpm --registry=https://registry.npm. ...

  9. javaweb回顾第八篇如何创建自定义标签

    前言:在javaweb开发中自定义标签的用处还是挺多的.今天和大家一起看自定义标签是如何实现的. 1:什么是标签 标签是一种XML元素,通过标签可以使JSP页面变得简介易用,而且标签具有很好的复用性. ...

随机推荐

  1. 【代码笔记】iOS-获取字符串的宽度,高度

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...

  2. SQL的多表连接查询

    SQL的多表连接查询 多表连接查询具有两种规范,SQL92和SQL99规范. SQL92规范支持下列多表连接查询: (1)等值连接: (2)非等值连接: (3)外连接: (4)广义笛卡尔积: SQL9 ...

  3. linux 读写锁应用实例

    转自:http://blog.csdn.net/dsg333/article/details/22113489 /*使用读写锁实现四个线程读写一段程序的实例,共创建了四个新的线程,其中两个线程用来读取 ...

  4. Python动态生成变量

    Python 也可以像javascript那样动态生成变量.我们看javascript的动态生成变量. var obj = {}; for (var i =0, len = 10; i < le ...

  5. Keepalived+tomcat的HA配置

    需要节点 NODE1—————-IP:192.168.0.2 NODE2—————-IP:192.168.0.3 VIP—————-IP:192.168.0.10 以下操作在2台机器上都要运行 先编辑 ...

  6. logstash date插件介绍

    时间处理(Date) 之前章节已经提过, filters/date 插件可以用来转换你的日志记录中的时间字符串,变成 LogStash::Timestamp 对象,然后转存到 @timestamp 字 ...

  7. Python学习笔记5(字符串与正则表达式)

    1.字符串 1.1字符串的格式化 #格式化语法 "%s" % str1 "%s %s" % (str1,str2) #格式化字符串 str1 = "v ...

  8. 普实软件:MES机器数据维护

    概述 机器数据有两个菜单,机器主数据在制造数据模块下,机器MES数据相关的设置在MES模块下,两个菜单查看的内容是一致的,但是机器主数据显示的是普通的机器,可做新增.编辑.删除操作,机器MES数据仅做 ...

  9. nyoj720 项目安排 二分+dp

    思路:dp(i)表示前i个项目的最大收益,转移方程很好写dp(i) = max{ dp(k) + val(i) },val(i)表示第i个项目的价值,dp(k)表示前k个的最佳收益,k满足ed(k) ...

  10. Python: datetime 转换

    Directive Meaning Example Notes %a Weekday as locale’s abbreviated name. Sun, Mon, …, Sat (en_US); S ...