问一个低级问题:我想让数据库在每天定时执行一个存储过程,如何实现?

liupengliupeng 2005-09-23 05:48:03
问一个低级问题:我想让数据库在每天定时执行一个存储过程,如何实现?
...全文
419 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
htjian 2005-09-29
  • 打赏
  • 举报
回复
对用job!
ymyy 2005-09-28
  • 打赏
  • 举报
回复
job信息
小李木耳 2005-09-26
  • 打赏
  • 举报
回复
也可以用pro*c写个程序,编译之后用sh文件调用。不过有点麻烦!
llin998 2005-09-26
  • 打赏
  • 举报
回复
对,用JOB

可以在表中配置JOB

CREATE OR REPLACE package body pkg_jobs as

--处理任务,定期的将SMS_PREPARE中超时纪录删除
procedure proc_job1
as
v_sqlerrm VARCHAR2(600);
BEGIN
--INSERT INTO LOG_INFO (USERNAME, LOG_TIME, ACTION) VALUES ('JOB1' ,sysdate,'JOB EXEC1') ;
LOOP
DELETE FROM SMS_PREPARE WHERE SEND_TIME < SYSDATE AND ROWNUM < 201;
EXIT WHEN SQL%NOTFOUND;
COMMIT;
END LOOP;
COMMIT;
--INSERT INTO LOG_INFO (USERNAME, LOG_TIME, ACTION) VALUES ('JOB1' ,sysdate,'JOB EXEC2') ;

EXCEPTION
WHEN OTHERS THEN
v_sqlerrm := SUBSTR(SQLERRM,1,600);
INSERT INTO ERR_LOG(LOG_TIME,DETAILS)
VALUES(SYSDATE,'ERROR OCCUR IN PKG_JOBS.PROC_JOB1,REASON:' || v_sqlerrm);
END;

/*
添加任务
说明:
1、根据数据库中的配置添加一个任务;
*/
procedure add_job(iv_job in number)
as
v_job_id jobontime.job_id%TYPE;
v_job_what jobontime.JOB_WHAT%TYPE;
v_job_next_date jobontime.Job_next_date%TYPE;
v_job_interval jobontime.JOB_INTERVAL%TYPE;
BEGIN
select job_id,job_what,job_next_date,job_interval
into v_job_id,v_job_what,v_job_next_date,v_job_interval
from jobontime
where job_id = iv_job;

dbms_job.isubmit(v_job_id,v_job_what,to_date(v_job_next_date,'YYYYMMDDHH24MI'),v_job_interval);
END;

/*
删除任务
说明:
1、删除一个任务;
*/
procedure remove_job(iv_job in number)
as
BEGIN
dbms_job.REMOVE( iv_job );
END;

/*
开始任务
说明:
1、根据数据库中的配置添加一个任务;
2、使用Run让任务开始执行;
*/
procedure start_job(iv_job in number)
as
v_job_id jobontime.job_id%TYPE;
v_job_what jobontime.JOB_WHAT%TYPE;
v_job_next_date jobontime.Job_next_date%TYPE;
v_job_interval jobontime.JOB_INTERVAL%TYPE;
BEGIN
select job_id,job_what,job_next_date,job_interval
into v_job_id,v_job_what,v_job_next_date,v_job_interval
from jobontime
where job_id = iv_job;

dbms_job.isubmit(v_job_id,v_job_what,to_date(v_job_next_date,'YYYYMMDDHH24MI'),v_job_interval);
dbms_job.run(v_job_id);
END;

/*
重新开始任务
说明:
1、删除一个任务;
2、根据数据库中的配置添加一个任务;
3、使用Run让任务开始执行;
*/
procedure restart_job(iv_job in number)
as
v_job_id jobontime.job_id%TYPE;
v_job_what jobontime.JOB_WHAT%TYPE;
v_job_next_date jobontime.Job_next_date%TYPE;
v_job_interval jobontime.JOB_INTERVAL%TYPE;
BEGIN
dbms_job.remove(iv_job);
select job_id,job_what,job_next_date,job_interval
into v_job_id,v_job_what,v_job_next_date,v_job_interval
from jobontime
where job_id = iv_job;

dbms_job.isubmit(v_job_id,v_job_what,to_date(v_job_next_date,'YYYYMMDDHH24MI'),v_job_interval);
dbms_job.run(v_job_id);
END;

end;
/
laofang 2005-09-26
  • 打赏
  • 举报
回复
使用JOB:
---
--建立一存储过程
create or replace procedure log_proc as
begin
insert into test(aa) values(sysdate);
commit;
end;
---
--提交一个job
declare
job_num number;
begin
dbms_job.submit(job_num,'log_proc;',sysdate,sysdate+5/(24*60*60),false);
dbms_output.put_line('Job numer='||to_char(job_num));
end;

--说明:
1> 上面程序从当前开始,间隔5秒执行一次。
2> 如果每天几点执行,可以写为(比如从2004-09-13开始执行,每天7点执行)
next_date => to_date('13-09-2004 07:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'trunc(sysdate)+(7+24)/24')
3> 如果是每个月几号开始执行。比如每月2号21点执行。
add_months(trunc(sysdate,'MONTH'),1) + 2-1 + 21/24
minitoy 2005-09-23
  • 打赏
  • 举报
回复
用job
内容概要:本文围绕VSG构网型逆变器与跟网型逆变器之间的双向平滑切换控制策略展开深入研究,系统探讨了GFL(跟网型)与GFM(构网型)逆变器在并网与孤岛运行模式下的切换机制。基于Simulink平台构建仿真模型,详细实现了切换过程中的控制逻辑设计、系统稳定性保障及动态响应性能优化等关键技术环节,重点解决模式切换过程中可能出现的电流冲击、频率电压波动等,确保微电网在不同运行工况下的连续稳定运行。研究还融合事件触发机制与分布式二次控制策略,实现频率和电压的无差调节,并提升通信资源受限或遭受DoS攻击等异常情况下的系统弹性与协同控制能力,适用于高比例新能源接入场景下的微电网灵活运行需求。; 适合人群:具备电力电子、自动控制、微电网与新能源系统等相关专业背景,从事电力系统仿真、分布式能源控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解构网型与跟网型逆变器的运行机理及切换控制原理;②设计并仿真验证GFL/GFM模式间的双向平滑切换策略;③应用于微电网分层控制、孤岛检测与无缝切换、二次频率电压恢复等实际工程场景;④支撑IEEE Transactions等顶级期刊论文的复现、科研项目开发及创新性课题研究。; 阅读建议:建议结合提供的Simulink仿真模型同步学习,重点关注模式切换判据、控制架构切换逻辑、事件触发条件设定及控制器参数整定方法,配合网盘中的完整代码与模型资源进行仿真调试,以深入掌握其实现细节并开展进一步的优化与拓展研究。
内容概要:本文提出了一种基于自适应无迹卡尔曼滤波(AUKF)的三相配电网动态状态估计方法,旨在解决三相不平衡配电网在量测噪声统计特性未知或时变情况下的状态估计难题。通过构建三相动态状态估计模型,结合无迹变换处理系统非线性,利用新息序列在线修正过程与观测噪声协方差矩阵,有效提升了状态估计的鲁棒性与精度。研究完整实现了算法的Matlab代码,涵盖系统建模、滤波迭代、噪声自适应调整等关键环节,为复杂配电系统提供了可靠的实时状态感知手段。; 适合人群:具备电力系统分析、现代控制理论基础及Matlab编程能力的研究生、科研人员以及从事智能配电网、状态估计相关工作的电力行业技术人员。; 使用场景及目标:①应用于主动配电网、高比例分布式能源接入等复杂运行环境下的实时动态状态监控;②为故障诊断、电压调控、负荷预测等高级应用提供高精度状态数据支撑;③作为科研与教学中非线性滤波算法开发、状态估计仿真实践的参考范例。; 阅读建议:建议读者结合文中提供的Matlab代码,逐模块分析算法实现流程,重点理解无迹变换机制与噪声协方差自适应更新策略,并可通过改变网络拓扑、噪声水平等参数进行仿真实验,深入掌握AUKF在实际工程中的性能表现与优化方向。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧