一、创建一个存储过程
create or replace procedure MY_Procedure
is
--这里用到了游标
cursor cur is
select * from users where length(name) > 10 ;
begin
for user in cur
loop
insert into users_temp values(user.id,user.passwd);
end loop;
end;
二、创建作业
variable job_num number;
begin
dbms_job.submit(:job_num,'MY_Procedure;',sysdate,'sysdate+1');
commit;
end;
三、运行作业
begin
dbms_job.run(:job_num);
end;
四、查询作业
select priv_user,job,what from user_jobs;
五、 删除作业
begin
dbms_job.remove(:job_num);
end;
六、时间
Sysdate+1/1440 每1分钟执行一次
Sysdate+5/1440 每5分钟执行一次
trunc(sysdate+1)+2/24 下一天的2点(凌晨)执行一次
'SYSDATE + 7' 最后一次执行的7天之后执行
'SYSDATE + 1/48' 每半个小时执行一次
'NEXT_DAY(TRUNC(SYSDATE), ''MONDAY'') + 15/24' 每个礼拜一的下午3点
'NEXT_DAY(ADD_MONTHS(TRUNC(SYSDATE, ''Q''), 3),''THURSDAY'')' 每个季度的第一个星期四
-----------------------------------------------------
最后那一项可以参考如下:
每天午夜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)'
其中li_jobno是它的ID,可以通过这个ID停掉这个任务,最后想说的是不要执行多次,你可以在里面管理起来,发现已经运行了就不SUBMIT
每天运行一次 'SYSDATE + 1'
每小时运行一次 'SYSDATE + 1/24'
每10分钟运行一次 'SYSDATE + 10/(60*24)'
每30秒运行一次 'SYSDATE + 30/(60*24*60)'
每隔一星期运行一次 'SYSDATE + 7'
不再运行该任务并删除它 NULL
每年1月1号零时 trunc(last_day(to_date(extract(year from sysdate)||'12'||'01','yyyy-mm-dd'))+1)
分享到:
相关推荐
Oracle Job是Oracle数据库中的一种调度工具,...通过Oracle Job,数据库管理员可以有效地自动化数据库维护任务,提高系统的可靠性并减少手动干预的需求。理解并熟练使用Oracle Job是数据库管理和优化的关键技能之一。
本文将深入探讨Oracle中的定时执行计划任务,这是数据库管理员(DBA)进行自动化运维的重要工具。 首先,Oracle提供的调度器(Scheduler)是实现定时任务的关键组件。它允许用户设置一系列的任务,如数据备份、清理...
Oracle Job的全称是Database Scheduler Job,它通过Oracle Database Scheduler(数据库调度器)进行管理。下面我们将深入探讨Oracle Job的创建、配置、管理和使用等相关知识点。 1. **Oracle Database Scheduler...
通过对 Jobs、Programs、Schedules、Events、Chains 和 Job Classes 的综合运用,可以构建出复杂多变的任务调度机制,极大地提高了数据库应用的自动化程度。通过深入了解这些概念并掌握相关技术,可以显著提升系统的...
- **Java Manager**:提供了Java管理器的使用方法。 - **Network Utilities**:提供了网络实用工具的使用方法。 - **Task Scheduler**:介绍了任务调度器的使用方法。 - **Unix Job Scheduler**:讲解了Unix作业调度...
【Quartz任务调度集群】是Java开发中解决定时任务需求的一种高效方案,它由OpenSymphony团队开发,自2001年以来广泛应用于各种项目。Quartz的核心优势在于其灵活性和简单性,允许开发者自由定义任务触发的时间表,...
Quartz是一款开源的任务调度框架,它允许开发人员在Java应用程序中安排任务的执行。Quartz以其灵活性、可扩展性和稳定性而被广泛应用于各种项目中,无论是小型应用还是大型企业系统,都可以利用Quartz来实现定时任务...
Quartz是一个功能强大的开源作业调度框架,专门设计用于Java平台。它不仅适用于J2SE应用,也能很好地融入J2EE环境中。Quartz的强大之处在于其灵活性与简单性的完美结合——无论是简单的定时任务还是复杂的调度需求,...
Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。Quartz 2.2.2 版本是其在特定时间的一个稳定版本,它提供了丰富的功能来帮助开发者创建、安排和管理任务。在描述中提到的"数据库...
Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息...
- 使用编程语言(如Java、Python、Go等)可以直接编写调度程序,实现对特定任务的控制。 - 数据库存储作业信息,如任务描述、执行时间、状态等,便于管理和查询。 3. **工具选择与应用场景**: - 对于小型项目,...
Quartz是一款开源的作业调度框架,它允许Java开发者在应用程序中安排复杂的定时任务。Quartz 2.2.3是该框架的一个稳定版本,提供了许多改进和修复,以确保更高效、可靠的任务调度。 首先,Quartz的核心特性在于其...
2. **Quartz Scheduler**: Quartz 是一个完全由Java编写的开源作业调度框架,用于创建、调度、执行和控制工作。它可以用于在任何Java应用中实现复杂的工作调度。Quartz的核心组件包括Job、Trigger、Calendar和...
4. **数据库作业API**:熟悉数据库提供的作业管理API,如Oracle的DBMS_SCHEDULER,或者在其他数据库系统如MySQL的事件调度器。 5. **日志记录**:为了追踪和调试,TestJob应该有良好的日志记录功能,以便分析测试...
### Quartz 的基本概念与应用实例解析 #### 一、Quartz 概述 Quartz 是 OpenSymphony 开源...开发者可以通过简单的配置和代码实现复杂的定时任务调度需求,这对于提高系统的自动化程度和降低维护成本具有重要意义。
Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义并执行定时任务。在分布式系统中,为了保证任务的可靠性和持久性,Quartz提供了数据库持久化功能,即将作业(Jobs)和触发器(Triggers)...
Quartz的核心功能包括创建、调度和管理作业(Jobs)以及触发器(Triggers)。通过这些组件,开发者可以灵活地安排任务执行的时间和频率,比如每天、每周或按特定间隔执行。 1. **Quartz的基本概念** - **Job**: ...