1、创建job
使用Submit()过程,工作被正常地计划好。
这个过程有五个参数:job、what、next_date、interval与no_parse。
PROCEDURE Submit (
job OUT binary_ineger,
What IN varchar2,
next_date IN date,
interval IN varchar2,
no_parse IN booean:=FALSE)
job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
what参数是将被执行的PL/SQL代码块。
next_date参数指识何时将运行这个工作。
interval参数何时这个工作将被重执行。
no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE
指示此PL/SQL代码在它第一次执行时应进行语法分析,
而FALSE指示本PL/SQL代码应立即进行语法分析。
在command window窗口中执行下面脚本
variable pc_job number;
begin
sys.dbms_job.submit(
pc_job,
'pro_name;',
sysdate,
'sysdate+1/1440'
);
commit;
end;
/
在plSQL中我的做法是
declare
pc_job number;
begin
sys.dbms_job.submit(pc_job,'pro_name;',sysdate,'sysdate+1/1440');
commit;
end;
时间间隔设置
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_MONTHS(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
2、运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
SQL> begin
2 sys.dbms_job.run(:pc_job);
3 commit;
4 end;
5 /
在plSQL中我的做法是:
begin
sys.dbms_job.run(dba_jobs.job);--:job可以用dba_jobs.job的值代替 eg:3017
commit;
end;
3、查看创建的job
查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:
select * from dba_jobs
4、删除JOB
SQL> begin
2 sys.dbms_job.remove(dba_jobs.job);
3 commit;
4 end;
5 /
5、修改要执行的操作
SQL> begin
2 sys.dbms_job.what(dba_jobs.job,what);
3 end;
4 /
6、修改下次执行时间
SQL> begin
2 sys.dbms_job.next_date(dba_jobs.job,next_date);
3 commit;
4 end;
5 /
7、修改间隔时间
SQL> begin
2 sys.dbms_job.interval(dba_jobs.job,interval);
3 commit;
4 end;
5 /
8、停止job
SQL> begin
2 sys.dbms_job.broken(dba_jobs.job,broken,nextdate);
3 commit;
4 end;
5 /
9、修改job_queue_processes的值(保证其不为0否则JOB不自动运行)
方法1: startup pfile='C:\oracle\ora90\database\initorcl.ora';
注:此方法修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库以后才能生效。
方法2: alter system set job_queue_processes=n;(n>0);
注:此方法不要重新启动数据库就能生效,系统自动修改init.ora文件
[b]
10、查看job_queue_processes的值
SQL> show parameter job_queue_processes;
使用Submit()过程,工作被正常地计划好。
这个过程有五个参数:job、what、next_date、interval与no_parse。
PROCEDURE Submit (
job OUT binary_ineger,
What IN varchar2,
next_date IN date,
interval IN varchar2,
no_parse IN booean:=FALSE)
job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
what参数是将被执行的PL/SQL代码块。
next_date参数指识何时将运行这个工作。
interval参数何时这个工作将被重执行。
no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE
指示此PL/SQL代码在它第一次执行时应进行语法分析,
而FALSE指示本PL/SQL代码应立即进行语法分析。
在command window窗口中执行下面脚本
variable pc_job number;
begin
sys.dbms_job.submit(
pc_job,
'pro_name;',
sysdate,
'sysdate+1/1440'
);
commit;
end;
/
在plSQL中我的做法是
declare
pc_job number;
begin
sys.dbms_job.submit(pc_job,'pro_name;',sysdate,'sysdate+1/1440');
commit;
end;
时间间隔设置
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_MONTHS(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
2、运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
SQL> begin
2 sys.dbms_job.run(:pc_job);
3 commit;
4 end;
5 /
在plSQL中我的做法是:
begin
sys.dbms_job.run(dba_jobs.job);--:job可以用dba_jobs.job的值代替 eg:3017
commit;
end;
3、查看创建的job
查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:
select * from dba_jobs
4、删除JOB
SQL> begin
2 sys.dbms_job.remove(dba_jobs.job);
3 commit;
4 end;
5 /
5、修改要执行的操作
SQL> begin
2 sys.dbms_job.what(dba_jobs.job,what);
3 end;
4 /
6、修改下次执行时间
SQL> begin
2 sys.dbms_job.next_date(dba_jobs.job,next_date);
3 commit;
4 end;
5 /
7、修改间隔时间
SQL> begin
2 sys.dbms_job.interval(dba_jobs.job,interval);
3 commit;
4 end;
5 /
8、停止job
SQL> begin
2 sys.dbms_job.broken(dba_jobs.job,broken,nextdate);
3 commit;
4 end;
5 /
9、修改job_queue_processes的值(保证其不为0否则JOB不自动运行)
方法1: startup pfile='C:\oracle\ora90\database\initorcl.ora';
注:此方法修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库以后才能生效。
方法2: alter system set job_queue_processes=n;(n>0);
注:此方法不要重新启动数据库就能生效,系统自动修改init.ora文件
[b]
10、查看job_queue_processes的值
SQL> show parameter job_queue_processes;
发表评论
-
ORACLE 手工备份与恢复
2013-10-25 09:50 9001、手工冷备 1.1、在非归档模式下,ORACLE只能 ... -
oracle 分页,oracle 随机数
2012-11-16 17:23 895oracle分页 select * from ( sele ... -
Oracle函数next_day
2012-11-14 17:53 1114--获取date日期的下一个星期weekday; next_d ... -
trunc函数截断日期
2012-11-08 14:26 1321截断日期: 先执行命令:alter session set ... -
复杂的SQL语句
2012-10-25 17:30 970--select 语句中执行判断 select sysdate ... -
oracle 密码永不过期
2012-07-06 11:54 16731. 成功安装ORACLE11g后,默认密码有效期为180天, ... -
ORACLE 错误记录
2012-06-29 17:34 8981. ORACL数据库表空间不够,试图增加表空间,之后进行大量 ... -
关于ORA-01034和ORA-27101的一种解决方法(转)
2012-06-29 17:11 20211 先看oracle的监听和oracle的服务是否都启动了。启 ... -
Oracle导出文件
2012-03-13 11:35 966SET echo off --是否显示脚本中正在 ... -
oracle 备份、还原(导入|导出)
2012-01-10 13:42 848下面介绍的是导入导出的实例。 数据导出: 1 将数据库TE ... -
oracle 启动状态介绍
2011-12-09 15:39 14011、startup nomount 读初始化参数文 ... -
oracle日期时间型timestamp相关学习
2011-09-14 15:12 353141、获取系统时间的语句(ssxff6获取小数点后面六位) se ... -
数据库性能优化
2011-07-12 14:14 917Oracle数据库性能优化 ... -
oracle死锁处理
2011-05-05 12:10 657--1.查看数据库中那些用户产生了锁 select usern ... -
ORACLE sysdate 相加减
2011-04-27 16:01 7964加法 select sysdate,add_months ... -
Oracle snapshot (快照)
2011-03-28 16:56 2891--在BMS中创建快照日志 create snapshot l ... -
Oracle bug 汇总
2011-03-28 11:33 1022database link --访问database link ... -
oracle游标
2011-03-11 16:05 1375一 游标是什么 游标字面理解就是游动的光标。 用数据库 ... -
oracle 包、方法、存储过程
2011-03-11 15:30 976--定义包 create or replace package ... -
ORACLE 对象、空间查询、操作
2011-02-23 12:59 2113--查看数据库版本 select * from v$versi ...
相关推荐
Oracle Job 定时任务 Oracle Job 定时任务是 Oracle 数据库中的一种定时执行任务的机制,它允许用户在指定的时间点或每天的某个时间点自行执行任务。 一、查询系统中的 Job 可以通过以下视图查询系统中的 Job: *...
Oracle JOB 定时任务 定时执行存储过程
Oracle Job 定时任务 Oracle Job 是 Oracle 数据库中的一种定时任务机制,允许用户在指定的时间点或每天的某个时间点执行任务。通过 Oracle Job,用户可以根据需要,设置任务的执行时间和频率,从而提高数据处理...
Oracle Job定时任务是Oracle数据库系统中一种强大的自动化功能,它允许管理员或开发人员安排数据库任务在特定的时间点或按照预定义的频率自动执行。Oracle Job主要用于执行PL/SQL块、存储过程、包或其他数据库操作,...
7. Oracle 定时任务的检查和修复步聚:通过检查 JOB_QUEUE_PROCESSES 参数的设置和修改,重启数据库,可以修复 Oracle 定时任务不能自动执行的问题。 这篇文章总结了 Oracle 定时任务不能自动执行的问题的检查和...
Oracle数据库中的定时任务(也称为作业或job)是Oracle系统中一个非常重要的子系统,它可以帮助用户自动执行一些常规性的任务,比如备份数据库、清理日志等。通过合理地利用Oracle定时任务,可以极大地提高系统的...
plsql创建存储过程并创建job定时任务执行详细笔记文档总结 在 Oracle 中,plsql 是一种强大的编程语言,可以用来创建存储过程和定时任务执行。在本文中,我们将详细介绍如何使用 plsql 创建存储过程并创建 job 定时...
这一功能主要通过Oracle的`DBMS_JOB`包实现,它提供了一系列API用于创建、管理和监控定时任务。 #### 二、创建定时任务的步骤 创建Oracle定时任务的过程通常分为三个主要步骤:创建表或存储过程作为任务主体、在`...
Oracle定时任务,也被称为Oracle数据库的调度作业,是Oracle数据库管理系统提供的一种功能,允许用户预定义一系列操作,如运行SQL脚本、数据备份或数据清理等,并设定在特定时间自动执行。这种机制对于自动化数据库...
Oracle的Job定时功能是Oracle数据库系统提供的一种自动化任务调度机制,允许用户设定特定的时间点或时间间隔执行数据库操作。在项目开发中,特别是在大数据管理和分析的场景下,定时任务经常被用于更新数据、生成...
-- job 创建 begin dbms_scheduler.create_job ( job_name => 'AGENT_LIQUIDATION_JOB', job_type => 'STORED_PROCEDURE', job_action => 'AGENT_LIQUIDATION.LIQUIDATION', --存储过程名 start_date...
Oracle的定时任务,通常被称为“Jobs”,是数据库管理系统中的一个重要组成部分,主要用于自动化执行数据库操作,如数据备份、数据清理、报告生成等。Job界面管理工具则为这些任务提供了图形化的配置和管理界面,...
综上所述,Oracle提供了两种方式来实现定时任务——`DBMS_JOB`和`DBMS_SCHEDULER`。对于简单的定时任务,`DBMS_JOB`就足够了;而对于更复杂的需求,建议使用功能更为强大的`DBMS_SCHEDULER`。无论是哪种方式,都允许...
- **`user_jobs`**: 包含登录用户的全部JOB信息,便于用户管理自己的任务。 - **`dba_jobs_running`**: 显示当前正在运行的JOB详情,包括SID(会话标识)和JOB ID。 - **`v$process`** 和 **`v$session`**: 这两个...
在Oracle数据库系统中,"Job"是用于执行定时任务的重要工具,它允许用户安排数据库作业在特定的时间点或按照特定的间隔自动运行。这在管理大量数据和维护数据库的日常运营中非常有用。"存储过程"是预编译的SQL和PL/...
oracle 是一个功能强大的关系型数据库管理系统,可以执行各种复杂的任务,其中包括定时执行存储过程。定时执行存储过程可以让 oracle 自动执行某些操作,而不需要人工干预。下面我们将详细讲解 oracle 中的定时执行...
oracle JOB常见的执行时间, 在初学者定义JOB时,对于执行时间往往不知道如何设置. 该文档列举了常见的定义方式.可以由此进行扩展.
Oracle数据库系统提供了强大的定时任务管理功能,这在企业级应用中极为重要,因为它们能够按照预设的时间间隔执行特定的任务,比如数据更新、备份、报表生成等。在本主题中,我们将深入探讨如何利用Oracle的存储过程...
Oracle定时任务,也被称为Oracle调度(Oracle Scheduler),是Oracle数据库系统中的一个重要组件,用于安排数据库内的作业自动执行。这些作业可以包括数据备份、清理过期记录、运行统计分析等日常维护任务。Oracle ...