Oracle 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)
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 语法和时间间隔的设定
这需要指定 `job` 参数(Job 的唯一标识)、`what` 参数(要执行的 PL/SQL 代码)、`next_date` 参数(首次执行的日期和时间)和 `interval` 参数(之后的执行间隔)。在本例中,`interval => 'trunc(sysdate)+1+1/...
Oracle Job 定时任务 Oracle Job 定时任务是 Oracle 数据库中的一种定时执行任务的机制,它允许用户在指定的...Oracle Job 定时任务提供了一个强大的机制来执行定时任务,可以根据不同的时间间隔和执行频率来设置。
Oracle Job 是 Oracle 数据库中的一个特性,用于在预定义的时间间隔自动执行数据库任务,例如运行存储过程、PL/SQL 块或者 SQL 查询。对于初学者来说,理解如何创建、运行和管理 Oracle Job 是十分重要的。 1. **...
它是一个日期/时间表达式,可以指定不同的时间间隔来运行Job。例如,'TRUNC(SYSDATE+1)'表示每天午夜12点执行,'TRUNC(SYSDATE+1)+(8*60+30)/(24*60)'表示每天早上8点30分执行。 为了使Job工作正常运行,需要设置...
其中,`SYSDATE` 函数返回当前系统日期和时间,`TRUNC` 函数可以截去日期的时分秒,`NEXT_DAY` 函数可以计算下一个工作日。 例如,计算作业的执行时间为每天下午 2 点: ```sql trunc(sysdate+1)+14/24 ``` ...
Oracle 中的 Job 是一个计划任务,它可以在指定的时间点或间隔执行存储过程、函数或其他 PL/SQL 块。 Job 可以用来执行各种任务,如数据导出、数据备份、报表生成、数据清理等等。 使用 Oracle 的 Job 需要设置...
- `next_date`:Job首次执行的日期和时间。 - `interval`:后续重复执行的间隔,例如`'SYSDATE+1'`表示每天执行一次。 - `no_parse`:是否在执行时解析SQL语句,默认为FALSE,即每次执行都会重新解析。 #### 管理...
通过 Oracle Job,用户可以根据需要,设置任务的执行时间和频率,从而提高数据处理效率和自动化程度。 一、查询系统中的 Job 为了查询系统中的 Job,用户可以使用以下三个视图: * DBA_JOBS:显示所有用户的 Job ...
在设置和管理Job时,初始化参数`job_queue_processes`是必需的,它限制了同时可以执行的后台作业进程的数量。可以通过`ALTER SYSTEM SET job_queue_processes=n`来设置,其中n大于0,最大值为1000。同时,可以使用`...
其中,`:jobno`是Job的编号,`your_procedure`是要执行的存储过程,`trunc(sysdate) + 1/24`和`trunc(sysdate) + 1/24 + 1`分别表示下次执行时间和每次间隔时间。 Job的相关操作包括: - 删除Job:`DBMS_JOB.BREAK...
Oracle 中 job 的参数有很多,包括 job 的唯一标识号、提交任务的用户、赋予任务权限的用户、对任务作语法分析的用户模式、最后一次成功运行任务的时间、正在运行任务的开始时间、下一次定时运行任务的时间、总时间...
Oracle Job 是 Oracle 数据库中的一个特性,用于在指定的时间执行一系列数据库操作,这些操作可以是 PL/SQL 块、存储过程或者包。这个功能在数据库管理、数据维护、批处理任务等方面非常实用。在本篇文章中,我们将...
Oracle 定时器的间隔设置可以根据需要设定,例如: * 每分钟执行:`trunc(sysdate,'mi')+1/(24*60)` * 每天定时执行:`trunc(sysdate)+1+(2/24)` * 每周定时执行:`trunc(next_day(sysdate,2))+(2/24)` * 每月定时...
Oracle Job 是 Oracle 数据库中的一个特性,用于在预定义的时间执行数据库操作,如定期备份、统计分析或数据清理等。Job 的使用与管理是数据库管理员(DBA)日常维护工作的重要部分,尤其对于大型企业应用而言,有效...
`DBMS_JOB` 是 Oracle 数据库提供的用于调度任务的包,可以实现对定时任务的管理,包括任务的创建、修改、删除及执行等操作。该包提供了多种过程和函数,允许用户以灵活的方式控制定时任务的执行。 #### 二、主要...
在Oracle数据库中,JOB队列是一种用于调度后台任务的机制,允许用户定义一系列的作业,这些作业可以在指定的时间点或者周期性地执行。这一功能由数据库的系统守护进程SNP(System Notification Process)负责管理,...
Oracle系统包中的`dbms_job`是一个非常重要的功能组件,它主要用于在Oracle数据库中安排和管理后台作业(job),使得数据库能够定期执行特定的任务。这对于自动化数据库管理和维护操作至关重要。本文将详细介绍`dbms...
- `START_DATE`: 指定任务首次运行的日期和时间。 - `REPEAT_INTERVAL`: 定义任务重复执行的时间间隔。 如果用户拥有足够的权限,还可以为其他 Schema 创建 Job。此时,`JOB_NAME` 应遵循 `schema.job_name` 的格式...