Oracle Job 语法和时间间隔的设定(转)

http://blog.itpub.net/27157/viewspace-425567/

初始化相关参数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

时间: 2024-11-07 10:37:21

Oracle Job 语法和时间间隔的设定(转)的相关文章

ORACLE基本语法

ORACLE基本语法 一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea.启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb.关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动ora

Oracle基本语法集锦

Oracle基本语法集锦 1.表 create table test (names varchar2(12),                   dates date,                   num   int,                   dou   double); 2.视图 create or replace view vi_test asselect * from test; 3.同义词 create or replace synonym aafor dbusrc

Oracle常用语法

1,case用法 SELECT CASE WHEN T.FLAG='0' THEN T.USERID WHEN T.FLAG='1' THEN T.ORGID ELSE NULL END AS '标识' FROM XTXMXX T 2,decode用法 --如果FLAG等于1,则转为USERID,如果为0,则转为ORGID,其他的为2 SELECT DECODE(T.FLAG,1,T.USERID,0,T.ORGID,2) FROM XTXMXX T ; 3,创建sequence -- Crea

mysql 、oracle存储过程语法区别

1.  条件语句:mysql使用elseif关键字,oracle是elsif关键字: oracle: if表达式 then 表达式: elsif 表达式: endif: mysql: if表达式then 表达式: elseif 表达式: endif: 2. 字符串连接 oracle使用 || : mysql 使用concat函数: 3. 日期计算(年月日数) mysql: 函数TimeStampDiff()是MySQL本身提供的可以计算两个时间间隔的函数,语法为:TIMESTAMPDIFF(un

Oracle —— Sql语法总结

-- 定义语句块 declare v_name varchar2(30) := 'Jack' -- 定义变量 begin select v_name from dual; exception when others then dbms_output.put_line('有异常'); end; -- if 判断 declare v_num1 number; v_num2 number; v_result varchar2(10); begin if v_num1 is null or v_num2

mysql和oracle的语法差异(网络收集)

oracle没有offet,limit,在mysql中我们用它们来控制显示的行数,最多的是分页了.oracle要分页的话,要换成rownum. oracle建表时,没有auto_increment,所有要想让表的一个字段自增,要自己添加序列,插入时,把序列的值,插入进去. oracle有一个dual表,当select后没有表时,加上的.不加会报错的.select 1 这个在mysql不会报错的,oracle下会.select 1 form dual这样的话,oracle就不会报错了. group

Oracle基本语法&&函数&&子查询&&分页查询&&排序&&集合操作&&高级分组函数

一.  数据库 手工---文件管理---数据库 DB:Database 数据库. DBMS:管理数据库的软件.(oracle) 主流关系数据库: 1.      Oracle 2.      DB2 3.      SQL Server 基本没人使 4.      MySQL  基本没人用,免费 Linux 开源,可以发现漏洞补上 Windows服务器会有补丁,数据易泄漏 eclipse 日食 数据表(Table): 表的行(Row):记录 表的列(Column):字段 二.  关系型数据库 一

asp.net   “Xcrs.DAL.Oracle.ProcManager”的类型初始值设定项引发异常

今天在本机上调试asp.net程序,总是报错说:"Xcrs.DAL.Oracle.ProcMana常ger"的类型初始值设定项引发异常,而且昨天还好好的,今天就报错了.然后就问同事,从网上找,各种试,但是就是找不到原因,以为是引用oracle的dll版本不匹配问题,又重新引用,但是还是报这个错.又各种检查app.config和web.config,还是报错.实在没办法了,然后就一点点调试,发现是取数据的时候,会报这个错,然后无意看到xml文件的末尾,是昨天走的匆忙,复制过去到调用的方法

Oracle常用语法整理

因本人是刚进入开发不久的新人,所以平时整理了一些常用的oracle语法,现分享如下: