每天1点执行的oracle JOB样例
DECLARE
X
NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X,
what
=> 'ETL_RUN_D_Date;',
next_date => to_date('2009-08-26
01:00:00','yyyy-mm-dd hh24:mi:ss'),
interval =>
'trunc(sysdate)+1+1/24',
no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job
Number is: ' || to_char(x));
COMMIT;
END;
/
以
上是明确指定每天的1点执行此job,如果指定是每天中午12点执行interval需要指定为'trunc(sysdate)+1+12/24',如果
仅仅指定interval为一天,这样当你手工用dbms_job.run(job)去运行一次时,job每天的执行时间是会改变的,如果你想job每天
在固定时间执行,可以参考上面的例子.
初始化相关参数job_queue_processes
alter
system set job_queue_processes=39 scope=spfile;//最大值不能超过1000
;job_queue_interval = 10 //调度作业刷新频率秒为单位
job_queue_process
表示oracle
能
够并发的job的数量,可以通过语句
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
all_jobs
user_jobs
dba_jobs_running
包含正在运行job相关信息
-------------------------
提交job语法:
begin
sys.dbms_job.submit(job
=> :job,
what => 'P_CLEAR_PACKBAL;',
next_date =>
to_date('04-08-2008 05:44:09', 'dd-mm-yyyy hh24:mi:ss'),
interval
=> 'sysdate+ 1/360');
commit;
end;
/
-------------------------
创
建JOB
variable jobno number;
begin
dbms_job.submit(:jobno,
'P_CRED_PLAN;',SYSDATE,'SYSDATE+1/2880',TRUE);
commit;
运
行JOB
SQL> begin
dbms_job.run(:job1);
end;
/
删
除JOB
SQL> begin
dbms_job.remove(:job1);
end;
/
DBA_JOBS
===========================================
字
段(列) 类型 描述
JOB NUMBER 任务的唯一标示号
LOG_USER VARCHAR2(30) 提交任务的用户
PRIV_USER
VARCHAR2(30) 赋予任务权限的用户
SCHEMA_USER VARCHAR2(30) 对任务作语法分析的用户模式
LAST_DATE
DATE 最后一次成功运行任务的时间
LAST_SEC VARCHAR2(8)
如HH24:MM:SS格式的last_date日期的小时,分钟和秒
THIS_DATE DATE
正在运行任务的开始时间,如果没有运行任务则为null
THIS_SEC VARCHAR2(8)
如HH24:MM:SS格式的this_date日期的小时,分钟和秒
NEXT_DATE DATE 下一次定时运行任务的时间
NEXT_SEC
VARCHAR2(8) 如HH24:MM:SS格式的next_date日期的小时,分钟和秒
TOTAL_TIME NUMBER
该任务运行所需要的总时间,单位为秒
BROKEN VARCHAR2(1) 标志参数,Y标示任务中断,以后不会运行
INTERVAL
VARCHAR2(200) 用于计算下一运行时间的表达式
FAILURES NUMBER 任务运行连续没有成功的次数
WHAT
VARCHAR2(2000) 执行任务的PL/SQL块
CURRENT_SESSION_LABEL RAW MLSLABEL
该任务的信任Oracle会话符
CLEARANCE_HI RAW MLSLABEL 该任务可信任的Oracle最大间隙
CLEARANCE_LO
RAW MLSLABEL 该任务可信任的Oracle最小间隙
NLS_ENV VARCHAR2(2000) 任务运行的NLS会话设置
MISC_ENV
RAW(32) 任务运行的其他一些会话参数
--------------------------
描述
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
相关推荐
Oracle Job 的使用对于实现定时任务、批处理操作和维护工作至关重要。以下是对 Oracle Job 使用的详细解释: 1. **创建 Job**: 创建 Job 可以通过 `DBMS_JOB.SUBMIT` 存储过程完成。例如,在提供的代码中,创建了...
Oracle中job的使用详解 Oracle 中的 Job 是一个非常强大且灵活的功能,它允许开发者在数据库中执行计划任务,提高数据库的自动化程度和效率。那么,什么是 Oracle 中的 Job 呢? Oracle 中的 Job 是一个计划任务,...
Oracle 中 job 的使用详解 Oracle 中的 job 是一种非常强大的功能,可以帮助开发者自动执行各种复杂的业务逻辑。通过使用 Oracle 的存储过程,可以大大减少 Java 程序代码的编写工作量,并且存储过程执行在数据库上...
接下来,我们将通过具体的示例来展示如何使用DBMS_JOB API来管理和操作Oracle定时任务。 ##### 示例1:创建一个新的job ```sql BEGIN DBMS_JOB.SUBMIT ( job => 1, -- job ID what => 'BEGIN MY_PROCEDURE; END...
### Oracle Job 创建脚本详解 #### 一、Oracle Job 概述 在Oracle数据库中,Job是一种用于调度定期任务的功能,常被用来自动化执行数据库管理中的各种任务,比如备份、清理临时表空间等。Job主要由`DBMS_JOB`包...
### Oracle Rman命令详解 #### 一、RMAN命令类型及使用场景 ##### 1.1 独立命令(Standalone Command) 独立命令是指在RMAN中可以直接执行的命令,这类命令通常不依赖于其他命令,能够独立完成某个功能。例如备份表...
### Oracle 数据泵详解 #### 一、EXPDP和IMPDP使用说明 Oracle Database 10g引入了数据泵(Data Pump)技术,这是一种用于在Oracle数据库间高效传输数据的新技术。数据泵技术主要包括两个工具:EXPDP(Export Data...
Oracle中的Job是一个强大的功能,允许用户在特定时间或按照预...通过理解Job的属性、INTERVAL的设置以及DBMS_JOB包的使用方法,开发人员可以构建出可靠且高效的定时任务解决方案,充分利用Oracle数据库的性能和稳定性。
### 创建Oracle Job详解 在Oracle数据库管理中,创建Job是一项重要的功能,可以帮助用户自动化执行一些周期性的任务,比如定期备份数据、更新统计信息等。本文将详细介绍如何在Oracle环境中创建Job,并通过具体的...
Oracle Create Type 详解 Oracle Create Type 是 Oracle 数据库中的一种强大工具,可以用于创建自定义类型,例如对象类型、数组类型、表类型等。在本文中,我们将详细介绍 Oracle Create Type 的概念、语法和应用。...
### Oracle Job 用法详解 Oracle Job 是Oracle数据库中一种用于调度任务的机制,通过它可以在特定的时间或按一定的间隔自动执行预定义的PL/SQL块、存储过程或其他类型的脚本。本文将深入探讨Oracle Job的用法,包括...
### Oracle PL/SQL 编程详解 #### 一、PL/SQL 概述 ##### 1.1 什么是 PL/SQL? PL/SQL(Procedure Language for SQL)是Oracle数据库的一种专用编程语言,它将SQL语句与过程化的编程语言特性相结合,提供了强大的...
### Oracle Job 停止详解 #### 背景与目的 在Oracle数据库管理中,有时需要使用`JOB`机制来执行周期性或一次性任务。然而,在某些情况下,可能需要临时或永久地停止这些`JOB`。本文将详细介绍如何有效地停止Oracle...
### Oracle Job 创建与运行知识点详解 #### 一、Oracle Job 概述 在Oracle数据库管理系统中,`Oracle Job`是一种非常实用的功能,主要用于自动化执行某些任务。这些任务可以是存储过程、PL/SQL块或其他数据库操作。...
### Oracle存储过程使用详解 在Oracle数据库环境中,存储过程是一种重要的数据库对象,它允许开发者将一组SQL语句和控制流程语句封装在一个命名单元中,从而实现更复杂、更高效的数据处理逻辑。本文将深入探讨...
Oracle定时任务详解主要涉及到Oracle数据库中的DBMS_JOB包,这是一个用于在数据库级别执行定时任务的工具,特别适合处理大量表级别的操作,以提高效率并减少系统级别的编程工作和潜在错误。Oracle的作业队列管理器...
ORACLE EXPDP/IMPDP 参数详解 ORACLE EXPDP/IMPDP 是 Oracle 数据库中用于数据泵导出导入的工具,分别对应 EXP 和 IMP 工具。EXPDP/IMPDP 的出现使得 DBA 或开发人员可以将数据库元数据(对象定义)和数据快速移动...