建站经验 网站建设学院,新思域设计公司网站建设,厦门建站程序,漯河有没有做网站的/*使用oracle 的 PL/Sql 定时执行一个存储过程 测试目的#xff1a;在表 tab 中间隔一分钟插入一条数据 实现方案#xff1a;1.通过 oracle 中 dbms_job 完成存储过程的定时调用2.在存储过程中完成相应的逻辑操作 脚本说名#xff1a;以下代码为 dbms_job 操作的基本写法在表 tab 中间隔一分钟插入一条数据 实现方案1.通过 oracle 中 dbms_job 完成存储过程的定时调用2.在存储过程中完成相应的逻辑操作 脚本说名以下代码为 dbms_job 操作的基本写法其中不包含各个系统函数参数说明如需要了解“系统函数参数说明”请另行在网上查找 注1.其中的停止运行后继续执行的方法还有待测试 2.开始运行一个计划时计划内的存储过程将立刻执行一次*/ --1.创建一个测试表create table tab(dtime date);Select * From tab; --2.创建一个存储过程create or replace procedure p_test asbegin insert into tab values(sysdate);end; --3.创建一个执行计划每天1440分钟即一分钟运行存储过程一次Declare i Integer;Begin dbms_job.submit(i,p_test;,Sysdate,sysdate1/1440);end; --4.查看已经创建的所有执行计划Select * From user_jobs; --5.运行执行计划Declare job_num Integer;Begin -- 查找计划号 Select t.JOB Into job_num From User_Jobs t ; -- 运行制定的执行计划 dbms_job.run(job_num);end; --6.查看计划的运行结果 select t.dtime --to_char(t.dtime,yyyy-mm-dd hh24:mi:ss) from tab t Order By t.dtime; -- 查出测试表内容 Delete tab t; --7.修改执行计划修改执行的间隔时间/*sysdate1 表示每天执行一次sysdate1/24 表示每小时执行一次sysdate1/(24*60) 表示每分钟执行一次sysdate1/(24*60*60) 表示每秒执行一次*/Declare job_num Integer;Begin -- 查找计划号 Select t.JOB Into job_num From User_Jobs t ; -- 修改为每天执行一次 dbms_job.interval(job_num, sysdate1/(24*60));end; --8.停止一个执行计划/* Sysdate(5) 加五天, Sysdate(5/24) 加五时, Sysdate(5/24/60) 加五分, Sysdate(5/24/60/60) 加五秒*/Declare job_num Integer;Begin -- 查找计划号 Select t.JOB Into job_num From User_Jobs t ; -- 停止计划不在执行 --dbms_job.broken(job_num,True); -- 停止计划并在两分钟后继续执行 dbms_job.broken(job_num,True,Sysdate(2/24/60));end; --9.删除执行计划Declare Declare job_num Integer;Begin -- 查找计划号 Select t.JOB Into job_num From User_Jobs t ; dbms_job.remove(job_num);end; 转载于:https://www.cnblogs.com/xxj-jing/archive/2011/02/25/2890109.html