mysql 包 过程 job_PL/SQL:学会使用DBMS_job包

DBMS_JOB包用于安排和管理作业队列.通过使用作业,可以使ORACLE数据库定期执行特定的任务. 注意:使用DBMS_JOB管理作业时,必须确保

一、DBMS_JOB包的使用

DBMS_JOB包用于安排和管理作业队列.通过使用作业,可以使Oracle数据库定期执行特定的任务.

注意:使用DBMS_JOB管理作业时,必须确保设置初始化参数JOB_QUEUE_PROCESSES(不能为0)

1.SUBMIT

该过程用于建立一个新作业,当建立作业时,需要给出作业要执行的操作,作业的下次运行日期及时间间隔.

语法:

DBMS_JOB.SUBMIT(

job OUT BINARY_INTEGER,

what IN VARCHAR2,

next_date IN DATE DEFAULT sysdate,

interval IN VARCHAR2 DEFAULT 'null',

no_parse IN BOOLEAN DEFAULT FALSE,

instance IN BINARY_INTEGER DEFAULT any_instance,

force IN BOOLEAN DEFAULT FALSE);

如上所示,job用于指定作业编号;what用于指定作业要执行的操作;next_date用于指定作业的下次运行日期;

interval用于指定运行作业的时间间隔;no_parse用于指定是否解析与作业相关的过程;instance用于指定哪个

例程可以运行作业;force用于指定是否强制运行与作业相关的例程,下面以建立用于分析scott.emp表的作业为

例,说明建立作业的方法.示例如下:

var jobno number

begin

dbms_job.submit(

:jobno,

'dbms_ddl.analyze_object(''table'',''scott'',''emp'',''compute'');',

sysdate,

'sysdate+1');

commit;

end;

/

jobno

---------

21

以上建立了一个作业,作业号为:21,下面可以进行调用此作业号,运行;

2.REMOVE

该过程用于删除作业队列中的特定作业,语法如下:

DBMS_JOB.REMOVE (job IN BINARY_INTEGER);

下面以删除作业21为例,说明使用该过程的方法.如下:

DBMS_JOB.REMOVE(21);

3.CHANGE

该过程用于改变与作业相关的所有信息,包括作业操作,作业运行日期以及运行时间间隔等)语法如下:

DBMS_JOB.CHANGE(

job IN BINARY_INTEGER,what IN VARCHAR2,

next_date IN DATE,interval IN VARCHAR2,

instance IN BINARY_INTEGER DEFAULT null,

force IN BOOLEAN DEFAULT FALSE);

下面以改变作业的

exec DBMS_JOB.CHANGE(21,null,null,'SYSDATE+2')

4.WHAT

该过程用于改变作业要执行的操作,语法如下:

DBMS_JOB.WHAT(job IN BINARY_INTEGER,what IN VARCHAR2);

下面以改变作业21的运行操作为例:

exec dbms_job.what(21,'dbms_stats.gather_table_stats(''scott'',''EMP'');');

5,NEXT_DATE

该过程用于改变作业的下次运行日期.语法如下:

DBMS_JOB.NEXT_DATE (job IN BINARY_INTEGER,next_date IN DATE);

下面以改变作业21的下次运行日期为例.

DBMS_JOB.NEXT_DATE(21,'SYSDATE+1');

6.INSTANCE

该过程用于改变运行作业的例程,语法如下:

DBMS_JOB.INSTANCE (

job IN BINARY_INTEGER,

instance IN BINARY_INTEGER,

force IN BOOLEAN DEFAULT FALSE);

实例:

DBMS_JOB.INSTANCE(21,1)

7.INTERVAL

该过程用于改变作业的运行时间间隔.语法如下:

DBMS_JOB.INTERVAL(job in BINARY_INTEGER,interval IN VARCHAR2);

实例:

exec DBMS_JOB.INTERVAL(21,'SYSDATE+1/24/60');

8.BROKEN

该过程用于设置作业的中断标记,当中断了作业之后.作业将不会被运行.语法如下:

DBMS_JOB.BROKEN(

job IN BINARY_INTEGER,broken IN BOOLEAN,

next_date IN DATE DEFAULT SYSDATE);

实例:

exec DBMS_JOB.BROKEN(21,TRUE,'sysdate+1')

9.RUN

该过程用于运行已存在的作业.语法如下

DBMS_JOB.RUN(job iN BINARY_INTEGER,force IN BOOLEAN dEFAULT FALSE);

实例:

DBMS_JOB.RUN(21);

10.作业使用示例:

当在ORACLE 数据库中使用作业时,应该首先使用过程SUBMIT来建立作业,然后使用过程RUN来运行作业.

logo.gif

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值