`
周凡杨
  • 浏览: 234576 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle之Job应用

阅读更多

最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。

 

一:查看相关job信息

   1、相关视图 

dba_jobs 

all_jobs 

user_jobs 

dba_jobs_running 包含正在运行job相关信息。

 

     select * from dba_jobs ;

 

     --dba_jobs_running 包含正在运行job相关信息

select * from dba_jobs_running;

 

 

2、运行JOB 

说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数: 

SQL> begin 

2  dbms_job.run(:job); 

3  end; 

4  / 

 

----------------------------------------------------------------------------------

在plSQL中我的做法是:

begin

dbms_job.run(3017);

end; 

----------------------------------------------------------------------------------

 

3、删除JOB 

SQL> begin 

2  dbms_job.remove(:job);--:job可以用dba_jobs.job的值代替如:1198 

3  end; 

4  / 

 

二:参数:job_queue_process

 

pl/sql的命令窗口执行:

SQL> show parameter job_queue_process;

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

job_queue_processes                  integer     10

 

通过show parameter job_queue_process 来查看oracle中 job_queue_process的值。 当job_queue_process的值为0时表示全部停止oracle的job。

可以通过语句: ALTER SYSTEM SET job_queue_processes = 10;  来调整启动oracle的job。

 

视图dba_jobs字段的含义:

 

   JOB   任务的唯一标示号

         Identifier of job. Neither import/export nor repeated executions change it.

 

   LOG_USER     提交任务的用户

                USER who was logged in when the job was submitted

   PRIV_USER    赋予任务权限的用户

                USER whose default privileges apply to this job

   SCHEMA_USER  对任务作语法分析的用户模式

                select * from bar means select * from schema_user.bar

   LAST_DATE    最后一次成功运行任务的时间

                Date that this job last successfully executed

   LAST_SEC     如HH24:MM:SS格式的last_date日期的小时,分钟和秒

                Same as LAST_DATE. This is when the last successful execution started.

   THIS_DATE    正在运行任务的开始时间,如果没有运行任务则为null

                Date that this job started executing (usually null if not executing)

   THIS_SEC     如HH24:MM:SS格式的this_date日期的小时,分钟和秒

                Same as THIS_DATE. This is when the last successful execution started.

   NEXT_DATE    下一次定时运行任务的时间

                Date that this job will next be executed

 

   NEXT_SEC     如HH24:MM:SS格式的next_date日期的小时,分钟和秒

                Same as NEXT_DATE. The job becomes due for execution at this time.

   TOTAL_TIME    该任务运行所需要的总时间,单位为秒

                 Total wallclock time spent by the system on this job,in seconds

 

   BROKEN       标志参数,Y标示任务中断,以后不会运行

                If Y,no attempt is being made to run this job. See dbms_jobq.broken(job).

   INTERVAL      用于计算下一运行时间的表达式

                 A date function

 

   FAILURES     任务运行连续没有成功的次数

                How many times has this job started and failed since its last success?

   WHAT         执行任务的PL/SQL块

                Body of the anonymous PL/SQL block that this job executes

   NLS_ENV      任务运行的NLS会话设置

                alter session parameters describing the NLS environment of the job

   MISC_ENV     任务运行的其他一些会话参数

                a versioned raw maintained by the kernel

 

   INSTANCE

      Instance number restricted to run the job

 

 

 

--------------------------

描述 INTERVAL参数值

 

每天午夜12点 'TRUNC(SYSDATE + 1)'

 

每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'

 

每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'

 

每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'

 

每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'

 

每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

 

--------------------------

 

1:每分钟执行

 

Interval => TRUNC(sysdate,'mi') + 1/ (24*60)

 

 

Interval => sysdate+1/1440

 

2:每天定时执行

 

例如:每天的凌晨1点执行

 

Interval => TRUNC(sysdate) + 1 +1/ (24)

 

3:每周定时执行

 

例如:每周一凌晨1点执行

 

Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

 

4:每月定时执行

 

例如:每月1日凌晨1点执行

 

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

 

5:每季度定时执行

 

例如每季度的第一天凌晨1点执行

 

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

 

6:每半年定时执行

 

例如:每年7月1日和1月1日凌晨1点

 

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

 

7:每年定时执行

 

例如:每年1月1日凌晨1点执行

 

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

 

 

---例子(第一个可运行的例子):

 

1. 首先:创建一个package

 

create or replace package xinyangacitiviiy

is

procedure  proc_getxinyangRecommData;

end xinyangacitiviiy;

 

2. 其次:创建一个package body

 

create or replace package body xinyangacitiviiy is

procedure  proc_getxinyangRecommData as

BEGIN

       insert into ec.zhou_yhhd_jinfen values('1','1',to_char(sysdate,'yyyy-mm-dd HH:MM:SS'));

       COMMIT;

end;

end xinyangacitiviiy;

 

3.最后,定义job并实施运行策略

 

variable jobxinyang number;

begin

  sys.dbms_job.submit(job => :jobxinyang,

                      what => 'xinyangacitiviiy.proc_getxinyangRecommData;',

                      next_date => sysdate,

                      interval => 'TRUNC(sysdate,''mi'') + 1/ (24*60)');

  commit;

end;

 

 

 

 

 

0
1
分享到:
评论

相关推荐

    基于springboot+Javaweb的二手图书交易系统源码数据库文档.zip

    基于springboot+Javaweb的二手图书交易系统源码数据库文档.zip

    Linux课程设计.doc

    Linux课程设计.doc

    课程考试的概要介绍与分析

    课程考试资源描述 本资源是为应对各类课程考试而精心准备的综合性学习包。它包含了多门学科的考试指南、历年真题、模拟试题以及详细的答案解析。这些资源旨在帮助学生系统复习课程内容,理解考试要点,提高解题技巧,从而在考试中取得优异成绩。 资源中不仅包含了基础的考试资料,还特别加入了考试技巧讲解和备考策略分析。学生可以通过这些资源了解不同题型的解题方法和思路,学会如何在有限的时间内高效答题。此外,还有针对弱项科目和难点的专项训练,帮助学生攻克学习瓶颈。 为了确保资源的时效性和准确性,我们会定期更新考试资料和模拟试题,及时反映最新的考试动态和趋势。同时,也提供了在线交流平台,方便学生之间互相讨论、分享学习心得。 项目源码示例(简化版,Python) 以下是一个简单的Python脚本示例,用于生成包含选择题和答案的模拟试题: python import random # 定义选择题题库 questions = [ {"question": "Python的创始人是谁?", "options": ["A. 林纳斯·托瓦兹", "B. 巴纳姆", "C. 比尔·盖茨", "D.

    基于Django的食堂点餐系统

    基于 MySQL+Django 实现校园食堂点餐系统。 主要环境: PowerDesigner MySQL Workbench 8.0 CE Python 3.8 Django 3.2.8 BootStrap 3.3.7 Django-simpleui

    基于SpringBoot的同城宠物照看系统源码数据库文档.zip

    基于SpringBoot的同城宠物照看系统源码数据库文档.zip

    value_at_a_point.ipynb

    GEE训练教程

    基于springboot+Web的心理健康交流系统源码数据库文档.zip

    基于springboot+Web的心理健康交流系统源码数据库文档.zip

    kotlin 实践微信插件助手, 目前支持抢红包(支持微信最新版本 7.0.0及7.0.3).zip

    微信小程序 kotlin 实践微信插件助手, 目前支持抢红包(支持微信最新版本 7.0.0及7.0.3).zip

    N32G45X运放电路检测电压

    N32G45X运放电路检测电压

    梦幻西游道人20241121数据

    梦幻西游道人是梦幻西游里面的一个NPC,主要是刷全服最实惠的高级兽决和其他很好用的比较贵的东西,在长安城、傲来国、长寿村中的任意一个场景出现,一般会出现30分钟,不过东西一般都被秒刷。 梦幻西游道人出现时间解析如下: 1.梦幻西游道人出现时间一直都保持着一年出现两次的规律,即2、3月份的元宵节期间来一次,9月份的教师节期间出现一次。 2.云游道人每个整点(0:00至7:00不出现)会在长安城、傲来国、长寿村中的任意一个场景出现,每次出现后停留时间为30分钟。

    tables-3.7.0-cp38-cp38-win_amd64.whl

    tables-3.7.0-cp38-cp38-win_amd64.whl

    基于springboot旧物回收管理系统源码数据库文档.zip

    基于springboot旧物回收管理系统源码数据库文档.zip

    MariaDB集群部署手册word版最新版本

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 本文档介绍了MariaDB 10.1的集群部署,至少三台机器做成集群,每台可以同时提供读和写,感兴趣的小伙伴们可以参考一下

    JavaScript语言教程:基础语法、DOM操作、事件处理及新特性详解

    内容概要:本文档全面介绍了JavaScript作为一种轻量级的、解释型的语言及其在前端开发中的广泛应用。从JavaScript的基本概念出发,详尽讲解了基础语法(如变量、数据类型、运算符、流程控制)、函数和闭包、对象和原型、DOM操作(如获取、修改、添加和删除元素)、事件处理(如事件监听器、事件对象)、AJAX与Fetch API、ES6+的新特性(如箭头函数、模板字符串、解构赋值)以及前端框架和库(React、Vue、Angular)。除此之外,文章还涉及了代码优化技巧(如减少DOM操作、选择适当的算法和数据结构、使用工具提升代码性能),并对JavaScript的应用场景和发展趋势进行了展望。 适用人群:适用于初学者或具有少量编程经验的学习者,旨在帮助他们系统掌握JavaScript基础知识和前沿技术。 使用场景及目标:通过本教程的学习,读者不仅可以学会基本语法,还能理解并掌握高级概念和技术,如DOM操纵、事件处理机制、异步编程及最新的ECMAScript规范。这不仅有助于改善用户体验、增强网站互动性和响应速度,也能有效提升自身的编码水平和项目开发能力。 其他说明:此文档不仅涵盖了JavaScript的传统功能,还有现代前端技术和最佳实践指导,确保读者能够紧跟行业发展步伐,成为合格甚至优秀的Web开发人员。

    毕业设计&课设_安卓公交线路查询 app(含架构技术、数据格式及数据库相关说明).zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于springboot高考志愿智能推荐系统源码数据库文档.zip

    基于springboot高考志愿智能推荐系统源码数据库文档.zip

    经典-FPGA时序约束教程

    经典-FPGA时序约束教程

    mcu交互实验整体文件

    mcu交互实验整体文件

    Collins COBUILD (CN).mdx

    Collins COBUILD (CN).mdx

    自定义springboot starter,提供HelloService

    自定义springboot starter

Global site tag (gtag.js) - Google Analytics