`
周凡杨
  • 浏览: 230369 次
  • 性别: 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
分享到:
评论

相关推荐

    oracle job

    oracle job,帮助初学者学习job应用 包含创建、删除、修改job 等。 oracle job,帮助初学者学习job应用 包含创建、删除、修改job 等。

    ORACLE_JOB_.docx

    本文档是关于ORACLE JOB 的应用,初学者可以参考

    oracle 简单应用

    oracle 入门技术:例,文件操作命令 1.start 和@ 说明: 运行 sql 脚本 案例: sql>@ d:\a.sql 或是 sql>start d:\a.sql 2.edit 说明: 该命令可以编辑指定的 sql 脚本 案例: sql>edit d:\a.sql,这样会把 d:\a.sql 这个...

    Oracle数据库恢复管理器及特殊包应用 (2)

    Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...

    Oracle用RMAN和DBMS_JOB包实现自动存储2

    Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...

    Oracle数据库恢复管理器及特殊包应用 (1)

    Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的...

    Oracle 主要配置文件介绍

    "/u02/app/oracle/oradata/cams/control02.ctl", "/u02/app/oracle/oradata/cams/control03.ctl") 4 调度作业队列的 SNP 进程的数量以及 SNP 进程觉醒时间间隔 秒 JOB_QUEUE_PROCESSES=2 JOB_...

    oracle学习笔记

    oracle 学习笔记总结 记录详细 Oracle8i9i知识全讲解 Oracle Note Oracle_EXP、IMP用法详解 Oracle_Job应用 Oracle_闪回技术 Oracle_体系结构 Sql_各种连接

    Oracle数据库管理员技术指南

    1.2.3 怎样配置符合 OFA 的 Oracle 文件 系统 1.3 规划数据库文件布局 1.3.1 最大化可用性的规划 1.3.2 最小化磁盘争用的规划 1.4 建立参数文件 1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 ...

    Oracle 8i PL SQL高级程序设计

    本书不仅为开发健壮的、基于Web的应用提供了深入的信息,而且本书的CD-ROM中还为读者提供了样本代码和第三方提供的Oracle开发工具。书中全面介绍了PL/SQL语言的包、触发器、动态SQL、外部例程、对象、集合等基本概念...

    oracle实验报告

    (3)应用 PL/SQL 解决实际问题 【实验内容与步骤】 PL/SQL块中的可执行部分是由一系列语句组成的(包括对数据库进行操作的SQL语句,PL/SQL语言的各种流程控制语句等)。在块中对数据库查询,增、删、改等对数据的...

    oracle_8i_pl_sql高级程序设计

    本书不仅为开发健壮的、基于Web的应用提供了深入的信息,而且本书的CD-ROM中还为读者提供了样本代码和第三方提供的Oracle开发工具。书中全面介绍了PL/SQL语言的包、触发器、动态SQL、外部例程、对象、集合等基本概念...

    韩顺平oracle学习笔记

    Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的数据库(sql server,mysql , access) 教程推荐:oracle使用教程, 深入...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    oracle 数据库数据迁移解决方案

     针对物理迁移,也即通过RMAN备份来进行还原并应用归档的方式(这里不讨论通过dd方式进行的冷迁移),虽然注意的是要将数据库设为force logging的方式,在用RMAN做全备之前,一定要执行:  否则可能会产生坏块。 ...

    ORACLE数据库基础知识-华为维护资料

    2.4 ORACLE数据库的网络应用 33 2.4.1 SQL*Net产品介绍 33 2.4.2 配置客户机/服务器结构 35 第3章 常用任务 39 3.1 如何恢复被误删的数据文件 39 3.2 如何杀掉吊死session 39 3.3 如何修改字符集 39 3.4 如何追加表...

    oracle数据库经典题目

    1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须...

    Oracle 全文检索的使用及内部机制

    本文是经过查询了很多oracle的全文检索资料后结合项目中的应用总结的. 主要内容有如下几点: 1. 如何创建和使用全文索引, 文中包含详细的步骤 2. 当数据发生变化时,如何更新全文索引,并且如何通过Job实现自动化 3. ...

    Oracle创建视图(View)

    视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:...视图被删除后,基于被删除视图的其他视图或应用将无效。

Global site tag (gtag.js) - Google Analytics