oracle怎么定时执行存储过程6,Oracle 编写存储过程并设置定时执行

Oracle 版本:11g

PL/SQL 版本:11.0.3.1770

1.如果编写单个存储过程,则直接在procedure新建并编写;如果需要写多个同类功能的存储过程,为了方便管理,可以现在package中定义,然后在package bodies 中编写过程体,如下图所示:

9b13d7e09ae4d48880509570e249ba56.png

1.1 编写单个procedure

1.1.1右键procedure,新建——填写过程名和相关参数:

0418f45f7478e8725c26c9566e9f3ff5.png

1.1.2编写过程,可以修改方法名和参数(该过程功能是打印输入的参数):

8d755c8a7c0068d7671de3941bde63c4.png

1.1.3点击F8提交存储过程,没有报错的话会在procedure包下出现新增的p_test过程:

d587a4f98813405ffd275f5fc5971f14.png

1.1.4右键p_test——点击test——输入参数——点击F9或者左上角(start debugger)

0c26e4b918c5fc8cf7064699c5e673e2.png

1.1.5点击run(或Ctrl + R)执行

e91722a585ef37c190f60c82f9b72b08.png

1.1.6切换到DBMS ouput 可以看到过程的执行结果:

17f5bed929aaa34f7c9cacc438c0b862.png

1.2 设置定时任务执行存储过程

1.2.1找到jobs包

731555f65f1b3b75b961c04bdfdf90db.png

1.2.2右键新建一个定时任务,Name-给该定时任务命名;Type-选择Store procedure(即执行的是一个存储过程);Action-填写编写的存储过程名称;Start date-开始时间;Frequency-选择执行频率;Interval-间隔时间(为了方便看到效果,这里设置了10秒执行一次);Job class-选择default job class即可;下方填入存储过程的参数,点击Apply即可。

7052e30861e9fcebf4b0ed2c12d0f150.png

0018b44bc1f2e292a8f4d992c35ff1b5.png

1.2.3此时存储过程就会每10秒自动执行了,点击下图选项可以看到执行详情和日志,点击reflash刷新一下即可:

631de87399b703aeb52b1fd1d56e8881.png

以上就是一个完成的编写存储过程到定时执行的过程,如果编写的存储过程函数体是查询某个表的数据然后插入另外的表的,就可以实现定时从远程数据库把数据插入到本地数据的功能,这也是存储过程定时任务常用的场景。

1.3 多个同类型的存储过程可以在package中定义,然后再package bodies 中实现:

1.3.1新建package,定义名称和填写包的用途:

5357b8307a00f8bde633338c26064a1f.png

1.3.2定义存储过程,此处定义了一个无参的p_apple和一个有参的p_orange;

4dd996c8a91dd0a660c1f8d96d0d184d.png

1.3.3按F8提交,package下多了一个PA_EATFOOD,同时package bodies下多了一个同名的PA_EATFOOD,在此编写函数的详细方法;

01e4b55c751015345aec3deb4f5b0f54.png

暂时不需要写的函数,可以用null设置为无功能的空方法,确认无误后点击F8执行即可。

1.3.4测试,点击左方的函数,右键test,进入执行单个函数进行测试操作:

29e3f1bc92f5f5221e56101599ef1a0d.png

1.3.5设置定时任务跟1.2过程一样,唯一的区别是Action 选项要在过程名前面加上包名,本例中即PA_EATFOOD.p_apple和PA_EATFOOD.p_orange。

标签:存储,1.1,package,点击,Oracle,编写,定时,过程

来源: https://www.cnblogs.com/gdou/p/11712547.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值