1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > oracle 如何创建job oracle创建job

oracle 如何创建job oracle创建job

时间:2021-02-14 10:37:42

相关推荐

oracle 如何创建job oracle创建job

一、基本语法

与MysqL的event事件类似,用来创建数据库的定时任务。

DBMS_JOB.SUBMIT(

job OUT BINARY_INTEGER,what IN VARCHAR2,NEXT_DATE IN DATE DEFAULTSYSDATE,interval IN VARCHAR2 DEFAULT 'NULL',

no_parse IN BOOLEAN DEFAULT FALSE,instance IN BINARY_INTEGER DEFAULT ANY_INSTANCE,force IN BOOLEAN DEFAULT FALSE);

@H_403_40@job参数是由Submit()过程返回的整型

@H_403_40@what表示这个job执行的内容,可以是存储过程或者sql代码块

@H_403_40@next_date表示执行这个job的开始时间

@H_403_40@interval表示重复执行的时间间隔

@H_403_40@no_parse表示这个job什么时候进行语法分析,true表示第一次执行时进行语法分析,false表示创建成功即进行语法分析

@H_403_40@instance、force用的很少。当force为true时,所有实例都能执行该job;当force为false时,只有指定实例能执行该job。

使用示例:

declare

tm_job number;

begin sys.dbms_job.submit(:tm_job,'prc_job_test;',sysdate,'sysdate+1/(24*60)');--每隔1分钟执行一次

end;

二、基本使用方法

1、oracle 10g默认允许的job队列为10个,可以通过命令查看

show parameter job_queue_processes;

可以通过alert命令修改这个值

alter system set job_queue_processes=11 scope=both;

scope作用域介绍:

Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有3种scope选项。

@H_403_40@scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。

@H_403_40@scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了。

@H_403_40@scope=both 内存和spfile都更改。默认为both。

2、对job进行修改

与创建类似,只不过第一个参数是传入并非返回。

BEGIN DBMS_JOB.CHANGE(14144,null,'sysdate+3');

COMMIT;

END;

修改其他参数类似,例如修改INTERVAL

DBMS_JOB.INTERVAL (

job IN BINARY_INTEGER,interval IN VARCHAR2);

2、删除job

DBMS_JOB.REMOVE (

job IN BINARY_INTEGER );

3、常用定时

TRUNC()函数常用来截取日期和数值(不进行四舍五入)。

select trunc(sysdate,'yyyy') from dual ---01-01 当年第一天

select trunc(sysdate,'dd') from dual ---09-05 当天

select trunc(sysdate,'hh') from dual ---09-05 17:00:00 精确到小时

select trunc(sysdate,'mi') from dual ---09-05 17:35:00 精确到分

select trunc(123.458,-1) from dual --120

select trunc(123.458,1) from dual --123.4

在job中的灵活时间设定

TRUNC(sysdate,'mi')+1/(24*60) --每分钟执行

TRUNC(sysdate+1) --每天凌晨0点执行

TRUNC(sysdate+1)+1/24 --每天凌晨1点

TRUNC(SYSDATE+1)+(8*60+30)/(24*60) --每天早上8点30分执行

TRUNC(next_day(sysdate,1))+2/24 --每周一凌晨2点执行

TRUNC(LAST_DAY(SYSDATE)+1) --每月1日凌晨0点执行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
oracle创建job

oracle创建job

2022-01-06

oracle 创建job

oracle 创建job

2019-10-22

oracle 创建job 语句

oracle 创建job 语句

2024-02-28

ORACLE—005:创建JOB(二)

ORACLE—005:创建JOB(二)

2018-06-27