精华内容
下载资源
问答
  • Oracle数据库定时器Job

    万次阅读 2013-10-09 14:08:20
    写法: declare  jobno number; begin  dbms_job.submit(  jobno,  'nextMonthInventoryCARRYFORWARD(to_char(sysdate,'||''''||'yyyy-MM-dd'||''''||'));', --what  sysdate, --next_

    写法:

    declare
      jobno number;
    begin
      dbms_job.submit(
            jobno,
            'nextMonthInventoryCARRYFORWARD(to_char(sysdate,'||''''||'yyyy-MM-dd'||''''||'));', --what
            sysdate, --next_date,可以不填        
            'TRUNC(LAST_DAY(SYSDATE))+1+2/24'--'Interval时间字符串' --interval,关键设置  
      );
    end;

     

    Oracle数据库中,我们经常会用到定时器Job来让数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,还是比较灵活的。本文我们总结了一些Oracle数据库定时器Job在各个时间段得写法,接下来我们就开始介绍这些。

    Job参数是有Submit()过程返回的binary_integer。

    what参数是将被执行的PL/SQL代码块。

    next_date参数指何时将运行这个工作。写Job的时候可以不指定该值。

    interval参数何时这个工作将被重执行。

    其中Interval这个值是决定Job何时,被重新执行的关键。

    1、每分钟执行

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

    2、每天定时执行

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

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

    3、每周定时执行

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

    Interval => TRUNC(next_day(sysdate, 2))+2/24 --星期一,一周的第二天

    4、每月定时执行

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

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

    5、每季度定时执行

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

    Interval => TRUNC(ADD_MONTH(SYSDATE), 3),'Q')+2/24

    6、每半年定时执行

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

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

    7、每年定时执行

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

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


    -------------查询JOB-----------------
    select job, what, next_date, next_sec, sysdate, failures, broken,interval
      from user_jobs a;


    -------------修改JOB-----------------
    begin
      dbms_job.change(62 ,'MY_JOP;', sysdate,'sysdate+2/(24*60)' );
      commit;
    end;

    begin
      dbms_job.change(62 ,'MY_JOP;', to_date('2011-08-01 22:00:00', 'yyyy-mm-dd hh24:mi:ss'),'sysdate+1');
      commit;
    end;


    -------------删除JOB-----------------
    begin
     dbms_job.remove(41);
    end;

    -------------运行Job-----------------------
    begin
     dbms_job.run(41);
    end;


    展开全文
  • Oracle数据库Job应用

    2019-05-25 13:34:56
    目前Oracle数据库设置定时任务job调度一般有两种方式,分别是dbms_scheduler创建job调度和dbms_job创建job调度。dbms_scheduler创建job调度是在10g以后才有的,甲骨文公司为了用来替换dbms_job而提供了更强大的功能...

    1.Job简介

    目前Oracle数据库设置定时任务job调度一般有两种方式,分别是dbms_scheduler创建job调度和dbms_job创建job调度。dbms_scheduler创建job调度是在10g以后才有的,甲骨文公司为了用来替换dbms_job而提供了更强大的功能与更灵活的机制/管理。下面介绍这两种方式。

    2.dbms_scheduler

    2.1参数介绍

    • job_name:job名字;
      • job_type:job类型,支持三种类型:PLSQL_BLOCK——PL/SQL语句块、STORED_PROCEDURE——存储过程、 EXECUTABLE——外部程序(外部程序可以是一个shell脚本,也可以是操作系统级别的指令);
    • job_action:根据job_type的不同,job_action有相对应的内容;
    • number_of_arguments:参数个数;
    • start_date:执行开始时间;
    • repeat_interval:指定job执行频率(如每分钟执行一次、每天执行一次等);
    • end_date:执行结束时间;
    • job_class:jobclass的名字;
    • enabled:指定是否自动激活job,为true代表自动激活,false代表不激活;
    • auto_drop:执行完是否自动drop;
    • comments:对于job的简单说明。

    2.2关于定时任务的一些常用过程

    1) dbms_scheduler.run(jobName) 运行job

    2) dbms_scheduler.stop_job(jobName,force) 停止job,force默认为false,Oracle建议false停止失败情况下,使用true,且使用true需要有manage scheduler权限

    3) dbms_scheduler.drop_job(jobName) 删除job

    4) dbms_scheduler.enable(jobName) 打开job

    5) dbms_scheduler.disable(jobName,force) 禁用job,force参数用于dependencies,如果TRUE,即使其他对象依赖于它,操作也能成功

    3.dbms_job

    创建存储过程:

    创建job方式一:执行SQL语句

    创建job方式二:PL/SQL界面操作,如下图所示

    常用过程:

    • 删除job: dbms_job.remove(jobno);
    • 修改要执行的操作: job:dbms_job.what(jobno, what);
    • 修改下次执行时间:dbms_job.next_date(jobno, next_date);
    • 修改间隔时间:dbms_job.interval(jobno, interval);
    • 启动job: dbms_job.run(jobno);
    • 停止job: dbms.broken(jobno, broken, nextdate);–-broken为boolean值。
    • 查询数据库中job列表:

    展开全文
  • oracle数据库采用SNP进程来管理和运行JOB,SNP进程和实例中其他进程最大区别是这个进程被杀掉后,系统就会自动重新启动一个SNP,因此并不影响oracle实例运行.SNP进程本身也是被系统周期性地调用去查看数据字典中的...

    oracle数据库采用SNP进程来管理和运行JOB,SNP进程和实例中其他进程最大区别是这个进程被杀掉后,系统就会自动重新启动一个SNP,因此并不影响oracle实例运行.SNP进程本身也是被系统周期性地调用去查看数据字典中的JOB序列目录,看是否有JOB需要去运行,运行之后SNP就进入休眠状态.唤醒,SNP被调用的时间的设置是在数据库初始化文件里通过参数job_queue_interval设置进行的,数据库在打开的时候根据初始化文件去初始化SNP进程。

        一、SNP参数说明参数 
        job_queue_interval的粒度不能太大,不要大于JOB执行的间隔(由参数interval来决定),否则的话可能造成有的作业无法执行.粒度也不能太细,否则会使系统频繁调用SNP而增加了系统的吞吐量,所以一定要根据具体环境中JOB而设定. 
        参数job_queue_interval的设定了系统中最多可运行的SNP数量。

        二、当SNP开始执行一个任务时,其过程如下:
        1.以任务所有者的用户名开始一个新的数据库会话。 
        2.当任务第一次提交或是最后一次被修改时,更改会话NLS设置和目前就绪的任务相匹配。 
        3.通过interval日期表达式和系统时间,计算下一次执行时间。
        4.执行任务定义的PL/SQL。
        5.如果运行成功,任务的下一次执行日期被更新,否则,失败则日志文件中的计数加1。
        6.经过JOB_QUEUE_INTERVAL秒后,又到了另一个SNP运行时间,重复上边的过程。

        三、作业失败如何处理    
        网上和书本上理论讲,当作业失败后,系统会在1分钟后重新运行这个JOB,如果还是失败,就在和第1次失败间隔2分钟的时候继续运行这个JOB,如果还是失败,就在和第2次失败相隔4分钟后运行这个JOB(可以用T=2t-1表 示,t表示第1次失败后检测的次数),直到T≥interval(JOB正常工作的时间设置参数)后,系统检测的时间间隔就为interval.直到第16次失败就会将这个job置为broken.但是这些介绍都很粗略,如果需要真正设计一些合理的job的时候就会忽略一些细微的问题,而这些细微的问题恰好是关键的地方. 
    提出问题:说明在oracle后台有这样的机制,就是需要判断T是否T≥interval,那么在job失败后是先判断呢,还是等1分钟后检测之后才判断. 
    实验之后得出结果:先判断,然后才检测,其中由于操作误差,和理论值稍有轻微偏差.

    转载自:

    【1】关于oracle数据库中job的总结

    http://hi.baidu.com/achilles_zhaic/item/cd6952f427b5a6d06225d20c

    展开全文
  • oracle数据库job的创建和使用oracle中job的作用准备数据库表准备存储过程创建job查看job删除job oracle中job的作用 oracle中的job主要用来运行一些定时任务,如每天凌晨00:00在数据库表中新增一条数据。job的运行,...

    oracle中job的作用

    oracle中的job主要用来运行一些定时任务,如每天凌晨00:00在数据库表中新增一条数据。job的运行,依赖存储过程。

    准备数据库表

    准备一张数据库表(mytest)。
    在这里插入图片描述
    在这里插入图片描述

    准备存储过程

    准备一个存储过程(myproc),存储过程实现对数据库表新增一条记录。

    create or replace procedure myproc is
    begin
      insert into mytest(id,name) values(1,'张三');
    end myproc;
    
    

    创建job

    创建一个job,可以通过oracle代码或PL/SQL可视化界面新建,创建成功后,数据库表mytest中将会每分钟新增一条数据。

    /*创建job示例*/
    declare job_n number;
    begin
      dbms_job.submit(job_n,'MYPROC;',sysdate,'TRUNC(sysdate,''mi'')+1/(24*60)');
      commit;
    end;
    

    在这里插入图片描述
    其中:

    1. job_n为job的编号。
    2. MYPROC为存储过程名称。
    3. TRUNC作为为执行时间间隔函数,这里为1分钟。

    查看job

    查看job,可以通过oracle代码或者PL/SQL中DBMS_Jobs栏下查找。

    /*查看job*/
    select * from dba_jobs s;
    

    在这里插入图片描述
    在这里插入图片描述

    删除job

    删除job可通过代码删除或PL/SQL的删除功能删除。

    /*删除job*/
    begin
      dbms_job.remove(4);
      commit;
    end;
    

    其中删除job是通过job的编号来删除的,这里删除的是编号为4的job。

    展开全文
  • Oracle 数据库采用Job 实现定时任务

    千次阅读 2007-01-17 19:14:00
    Oracle 数据库采用Job 实现定时任务 最近在工作中有这样一个需要,就是在特定的时间进行数据的备份以提高系统性能.因此了解了关于在Oralce 数据中实现定时任务的方法: 1 .定义任务的实现 --- 如存储过程 2. 定义一...
  • 查看oracle数据库job及会话信息

    千次阅读 2019-03-13 19:39:10
    查看所有jobselect from dba_jobs;查看正在运行的jobselect from dba_jobs_running; select job,log_user,priv_user,schema_user,BROKEN from ...查看数据库建立的回话情况select sid,serial#,username,program,mach...
  • oracle数据库job每隔固定时间执行内容,详细介绍和使用
  • 在SQL*Plus中可以处理三种类型的命令:SQL语句、PL/SQL块和SQL*Plus命令。 但三者之间是有区别的。 脚本中的 “:job”是一种绑定变量的方式,属于sql plus的命令格式。... sys.dbms_job.su...
  • PLSQL定时任务创建(Oracle数据库dbms_job使用)

    万次阅读 多人点赞 2018-08-20 21:11:57
    PLSQL定时任务创建(Oracle数据库中dbms_job使用) 通过本文将学习到 如何用PLSQL在中创建一个JOB 查看JOB 操作JOB 时间的判断 1、前言  2018/8/20,今天我们邮件系统出现了问题 ,无法正常的将待发邮件发出...
  • 给大家详细介绍了dbms_job的用法,用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。有需要的朋友们可以参考借鉴。
  • oracle数据库JOB方式执行任务

    千次阅读 2015-10-21 17:06:15
    而采用JOB方式的话,只要保证代码没有问题,可以确保一次执行成功,因为JOB是提交到oracle服务器上进行运行的。 具体操作如下: 1。将任务封装成一个无参的存储过程,假使封装为P_TMP 2。执行:DECL
  • 由于官方文档上没有找到相关的说明,所以这里进行了如下测试,为了找到oracle数据库job 失败后重试时间的规律。
  • 初探Oracle数据库 1、从虚拟机进入Oracle数据库步骤及配置 su - oracle 进入oracle用户 vi ~/.bash_profile
  • 他们说改ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0; 但是我是新手,不知道在哪,怎么改。能写详细一点么?
  • oracle数据库之间同步数据 dbLink +job方式
  • Oracle数据库

    千次阅读 2019-07-29 20:33:09
    学习主题:Oracle数据库的使用 学习目标: 1 掌握数据库相关概念 2 掌握oracle的安装,认识oracle的目录以及系统用户 3 掌握oracle常用命令 1.数据库相关概念 (1)请解释什么是DB, DBMS, DBAS, DBA, DBS? DB数据库,...
  • ORACLE数据库查看编码及修改编码

    千次阅读 2020-06-28 14:12:17
    查看数据库字符集 select userenv('language') from dual; 我机器上显示的是 SIMPLIFIED CHINESE_CHINA.ZHSGBK 四 下面命令依次执行,根据回馈结果判定是否正确执行 关闭数据库,卸载,关闭例程 shutdown ...
  • Oracle数据库查看编码和修改编码

    万次阅读 2017-11-28 15:22:12
    首先查看oracle数据库的编码 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER -------------------- VALUE -------------------- NLS_CHARACTERSET AL...
  • Oracle-Oracle数据库结构

    万次阅读 2017-06-02 13:16:32
    再谈Oracle数据库结构之前写了一篇文章《Oracle-知识结构漫谈》 粗略的介绍了Oracle数据库接口,在这里再更加详细的描述一下,当做是对原有知识的巩固,温故知新。Oracle体系结构数据库的体系结构是从某一个角度来...
  • Oracle数据库 基础

    千次阅读 多人点赞 2020-02-21 11:15:20
    1,能够理解Oracle数据库的基本概念 2,记忆Oracle DDL语句 3,掌握Oracle序列的使用 4,掌握oracle单行函数的使用 5,能够掌握oracle多行函数 6,学习并应用oracle分组统计 7,能够应用Oracle多表查询 8,掌握...
  • oracle数据库查看修改字符集问题

    千次阅读 2013-04-03 15:37:31
    1、查看数据库服务器的字符集  有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:SQL>select userenv('language') from dual;  结果类似如下:AMERICAN _ AMERICA. ZHS16GBK 2、查看...
  • 查看Oracle数据库资源状况

    千次阅读 2019-06-18 14:11:52
    对于Oracle数据库的资源状况,开发人员一般不怎么关注。但是有时候也会遇到,所以这里把相关的SQL做个笔记,方便查看。 ​​​​ 目录 1. 检查数据库基本状况 2. 检查Oracle相关资源的使用情况 3. 检查Oracle...
  • 针对上一篇文章的部分内容这里通过DBLink+JOB实现两个Oracle数据库之间的数据同步,我自己测试了两个数据库之间的一个表同步没有问题,下面写个详细例子供大家参考;网络爬虫太多,加个地址:...
  • Oracle数据库服务器:  Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy...
  • 1.使用PLSQL工具,打开job选项栏。 2,在job栏,右键点击new选项。 (1)submiitter:job属于那个数据。 (2)job:相当与一个ID,会自动生成,不用填写。 (3)what:填写你要实现的功能的sql语句,比如我自己...
  • Oracle数据库 入门教程

    万次阅读 多人点赞 2018-07-06 17:16:56
    Oracle数据库1.1 数据库环境安装1.Oracle数据库产品是免费的,我们可以从Oracle的官方网站(http://www.oracle.com)下载到程序安装包,Oracle在Windows下的安装非常方便,安装开始后,一直点击安装程序的“下一步”...
  • oracle 查询数据库job的具体内容 执行时间 编号等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,985
精华内容 25,994
关键字:

oracle数据库查看job