我的编程空间,编程开发者的网络收藏夹
学习永远不晚

存储过程+job 定时执行固定的SQL语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

存储过程+job 定时执行固定的SQL语句

做报表时,需要读取大量数据和进行复杂的计算,往往比较耗时,所以一般会将结果存放在一张结果表中,报表直接读取结果表,这样就会很快了。此时,为了更新结果表,获得最新数据,就需要定时执行一些SQL语句,此时可以采用:存储过程+job的方式来达到目的,具体步骤如下
创建存储过程:

create or replace procedure datawarn.P_TEST is

begin

  delete from test_table;
  insert test_table select * from table1;          --sql块,即你要执行的sql语句

  commit; --sql块

end;


执行存储过程(手动调用一次存储过程):

EXEC 存储过程名;



创建JOB:

begin

dbms_scheduler.create_job (

job_name => 'J_TEST', --JOB名称

job_type => 'STORED_PROCEDURE',

job_action => 'P_TEST', --存储过程名

start_date => sysdate,

repeat_interval => 'FREQ=MINUTELY; INTERVAL=10', -- 十分钟一次

comments => 'JOB说明'

);

end;

ps:创建job的时候要小心一点,仔细检查,不要写错信息,如果报错,再次创建会导致创建不成功,可以换个job名称尝试一下 

--启动

begin

dbms_scheduler.enable('J_TEST');

end;


执行

begin

dbms_scheduler.run_job(job_name => 'J_TEST',force => TRUE); -- true代表同步执行

end;

停止

dbms_scheduler.stop_job(job_name => 'J_TEST',force => TRUE);

--DI JOB查询

select * from tsc_jobstatus

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

存储过程+job 定时执行固定的SQL语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql创建定时任务执行存储过程

存储过程已添加好:https://blog.csdn.net/YXWik/article/details/127283316 1.创建定时器用来执行存储过程函数 create event delete_dataon schedule ev
2023-08-17

一条SQL语句执行过程时怎样的

本篇内容主要讲解“一条SQL语句执行过程时怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“一条SQL语句执行过程时怎样的”吧!一、MySQL 体系架构- 连接池组件1、负责与客户端的通信,是
2023-06-29

SQLserver存储过程写法与设置定时执行存储过程方法详解

一直都很想了解如何写存储过程,对于不熟悉的东西,总是觉得很神秘,下面这篇文章主要给大家介绍了关于SQLserver存储过程写法与设置定时执行存储过程方法的相关资料,需要的朋友可以参考下
2023-03-13

mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)

mysql获取一个时间段中所有日期或者月份 1:mysql获取时间段所有月份select DATE_FORMAT(date_add('2020-01-20 00:00:00', interval row MONTH),'%Y-%m') da
2022-05-25

SQLServer 错误 1204 SQL Server 数据库引擎的实例此时无法获得 LOCK 资源。 请在活动用户较少时重新运行该语句。 请询问数据库管理员,检查此实例的锁定和内存配置,或检查是否

详细信息 Attribute 值 产品名称 SQL Server 事件 ID 1204 事件源 MSSQLSERVER 组件 SQLEngine 符号名称 LK_OUTOF 消息正文 SQL Server ...
SQLServer 错误 1204 SQL Server 数据库引擎的实例此时无法获得 LOCK 资源。 请在活动用户较少时重新运行该语句。 请询问数据库管理员,检查此实例的锁定和内存配置,或检查是否
2023-11-05

编程热搜

目录