oracle 中job,Oracle中job的使用

昨日刚了解的Oracle中job是怎么回事,做个简单的笔记,有什么不正确的地方还请各位大拿指教;当我们需要定时在后台执行相关操作:如每天晚上0点将一张表的数据保存到另一张表中或者定时备份数据库等就需要用到job;先将使用步骤简单记录:

1).建个测试用表和sequence

-- Create table

create table Z_TEST(

id NUMBER(12),

c_date DATE);

-- Create sequence

create sequence SEQ_Z_TEST

minvalue 1

maxvalue 1000

start with 235

increment by 1

nocache; 2).创建测试所用的存储过程

CREATE OR REPLACE PROCEDURE PRO_Z_TEST IS

BEGIN

INSERT INTO Z_TEST (SEQ_Z_TEST.NEXTVAL, SYSDATE);

END REP_Z_TEST;

3).创建job

/**

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。

what参数是将被执行的PL/SQL代码块。

next_date参数指识何时将运行这个工作。

interval参数何时这个工作将被重执行。

no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE

指示此PL/SQL代码在它第一次执行时应进行语法分析,

而FALSE指示本PL/SQL代码应立即进行语法分析。

*/

PROCEDURE SUBMIT(JOB OUT BINARY,

WHAT IN VARCHAR2,

NEXT_DATE IN DATE,

INTERVAL IN VARCHAR2,

NO_PARSE IN BOOLEAN := FALSE);

测试:

-- CREATED ON 2013-01-07 BY ADMINISTRATOR

DECLARE

-- LOCAL VARIABLES HERE

JOB NUMBER;

BEGIN

-- TEST STATEMENTS HERE

SYS.DBMS_JOB.SUBMIT(JOB,'REP_Z_TEST;',SYSDATE,'SYSDATE+1/1440/60');--每5秒钟执行一次

END;

4).查看当前用户下的job视图

SELECT * FROM USER_JOBS;

5).立即运行当前JOB

BEGIN

DBMS_JOB.RUN(:JOB);--参数为当前JOB的值

END;

/

6).删除JOB

BEGIN

DBMS_JOB.REMOVE(:JOB);--参数为当前JOB的值

END;

/

【注】:关于job还有很多过程如:Broken()、change()、Interval()、Isubmit()、Next_Date()、Remove()、Run()、User_Export()、What()等,这些尽在dbms_job package中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值