189 8069 5689

oracle如何做job,oracle如何做监听

oracle job 时间每五分钟执行怎么写

oracle job 时间每五分钟执行:

创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为斗门企业提供专业的成都网站设计、网站建设,斗门网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

begin

sys.dbms_job.submit(job = :job,

what = '一个存储过程;',

Interval =TRUNC(sysdate,'mi') + 5/ (24*60));

commit;

end;

其中:如果改成TRUNC(sysdate,'mi')+ 10/ (24*60) 就是每10分钟执行次。每秒钟执行次:Interval = sysdate+ 1/(24 * 60 * 60)。如果改成sysdate + 10/(24 *60 * 60)就是10秒钟执行次。

使用dbms_job.submit方法过程,这个过程有五个参数:job、what、next_date、interval与no_parse:

1、job参数是输出参数,由submit()过程返回的binary_ineger,这个值用来唯一标识一个工作。一般定义一个变量接收,可以去user_jobs视图查询job值。

2、what参数是将被执行的PL/SQL代码块,存储过程名称等。

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

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

5、no_parse参数指示此工作在提交时或执行时是否应进行语法分析——true,默认值false。指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。

扩展资料:

1、每天定时执行

例如:每天的凌晨1点执行

Interval =TRUNC(sysdate) + 1 +1/ (24)

2、每周定时执行

例如:每周一凌晨1点执行:

Interval =TRUNC(next_day(sysdate,'星期一'))+1/24

3、每月定时执行

例如:每月1日凌晨1点执行:

Interval=TRUNC(LAST_DAY(SYSDATE))+1+1/24

4、每季度定时执行

例如每季度的第一天凌晨1点执行:

Interval =TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

参考资料来源:百度百科-Oracle系统

参考资料来源:百度百科-Oracle PL/SQL从入门到精通

oracle中如何创建一个job

将下面的存储过程名称换成实际的存储过程名称,就可以实现您要的功能的,

现为你写的,直接在pl/sql dev里面执行就行了,有啥问题再联系我。

上面一段是删除job,后面的是建立job,我写了判断语句,可以随意执行

参考oracle的 dbms_job包。

---------------------华丽丽的分割线----------------------------

DECLARE

i_count number;

job_num number;

BEGIN

select count(job) into i_count from user_jobs where upper(what)='存储过程名称;';

if i_count0 then

select job into job_num from user_jobs where upper(what)='存储过程名称;';

dbms_job.remove(job_num);

end if;

END;

/

commit;

DECLARE X NUMBER;

BEGIN

DBMS_JOB.SUBMIT

( job      = X

,what      = '存储过程名称;'

,next_date = to_date(to_char(sysdate+1,'yyyy-mm-dd')||' 01:00:00','yyyy-mm-dd hh24:mi:ss')

,interval  = 'SYSDATE+1'

,no_parse  = TRUE

);

END;

/

commit;

oracle job的写法

DECLARE

v_JobID NUMBER;

BEGIN CREATE_JOBS

-- 创建用户状态保护处理任务

-- 运行间隔时间5秒钟

BEGIN

SELECT JOB INTO v_JobID FROM USER_JOBS

WHERE UPPER(WHAT) = 'p_operator(2000);' AND ROWNUM = 1;

EXCEPTION

WHEN NO_DATA_FOUND THEN

v_JobID := 0;

END;

IF v_JobID = 0 THEN

SYS.DBMS_JOB.SUBMIT(JOB = v_JobID,

WHAT = 'p_operator(2000);',

NEXT_DATE = SYSDATE,

INTERVAL = 'SYSDATE + (5 / 86400)');

ELSE

SYS.DBMS_JOB.CHANGE(JOB = v_JobID,

WHAT = 'p_operator(2000);',

NEXT_DATE = SYSDATE,

INTERVAL = 'SYSDATE + (5 / 86400)');

END IF;

COMMIT;

END CREATE_JOBS;

/

如果需要进行drop表 create 表 insert into 插入数据,那么p_operator存储过程里面操作,其中括号里面的1000是入参,如果你不需要参数,那么可以删除

Oracle 定时任务job实际应用

Oracle定时任务是在oracle系统中一个非常重要的子系统,运用得当,可以大大提高我们系统运行和维护能力。oracle定时任务的功能,可以在指定的时间点自行执行任务。

那么在实际工作中,什么样的场景会用到定时任务呢?下面是在实际工作中用到的真实业务场景举例

上面是通过脚本创建,当然也可以通过plsql图形化工具来创建,具体创建过程如下

**系统会自动分配一个任务号jobno ** ,根据jobno 可以进行如下定时任务操作

查询结果如下

其中broken = N 表示该job已经生效

我们再来查看目标表中有没有定时插入数据

可以看到,定时一分钟插入了一条数据。

1、根据jobno,执行以下脚本可以停止job

再来查看定时任务是否停用成功

我们发现BROKEN=Y 说明定时任务已经停止成功了

BROKEN = N ,刚才的定时任务又启动了

下面总计了一些定时任务中常用的运行时间

ORACLE的JOB怎么用

在plsql develpoer 里, 贴入下列代码,点执行

DECLARE

job_no_ NUMBER;

BEGIN

DBMS_JOB.SUBMIT(job_no_,

'insert_Prod;', -- 一般会将 insert into 语句写到一个存储过程insert_Prod中

sysdate,

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

COMMIT;

END;

查询Oracle里的job

select

job,last_date,last_sec,next_sec,total_time,interval,what

from user_jobs


网页标题:oracle如何做job,oracle如何做监听
本文链接:http://cdxtjz.cn/article/hdpego.html

其他资讯