oracle定制定时执行任务

oracle定制定时执行任务

ID:40561668

大小:605.87 KB

页数:10页

时间:2019-08-04

oracle定制定时执行任务_第1页
oracle定制定时执行任务_第2页
oracle定制定时执行任务_第3页
oracle定制定时执行任务_第4页
oracle定制定时执行任务_第5页
资源描述:

《oracle定制定时执行任务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、oracle定制定时执行任务1.引言定制定时执行的任务有两种形式,系统级别和数据库级别,从操作系统级别来讲,windows系统我们可以使用任务计划来实现,对于winXP系统,设置步骤如下,开始---设置---控制面板---任务计划,然后添加任务计划,按向导完成配置即可; 对于win7系统,设置步骤如下,点击开始,然后在搜索程序和文件框中输入[任务计划],然后点击出来的任务计划程序,创建一个基本任务即可;linux系统我们可以使用crontab命令来是实现,从数据库级别来讲,我们可以采用数据库的job来实现;本节主要介绍通过oracle数据库的job来定

2、制一个简单的定时执行任务。本节会采用oracle定制一个定时向一个表中插入语句。 这里聊一下我做这个oracle定时任务的缘由: 项目中要在固定的时间,把一个数据库中某些表的数据同步到另外一个数据库,显然这些工作我不能每次都自己去做,那么,我要怎么来做呢?这个时候oracle的定时执行任务JOB无疑是我的最佳选择。我把同步的脚本放在一个存储过程中,然后在固定的时间去执行这个存储过程就OK了。 注意:以下所有的操作都是在sytem用户下执行。采用PL/SQL做的客户端登陆。 2.项目环境安装oracle10g,然后再安装PL/SQL,然后用管理员用户sy

3、stem登陆,打开SQLWindow输入图中的SQL语句,操作环境详细的信息如下: 3.环境准备(1)新建一个表,命令为test,建表语句如下:test09161createtablesystem.test09162(3  seqNUMBER(2)PRIMARYKEY,4  seqtime DATE5)在SQL窗口执行以上语句;(2)新建一个存储过程,命名为test_proc,存储过程的语句如下:test_proc 1CREATEORREPLACEPROCEDUREtest_proc IS2BEGIN3  INSERTINTOSYSTEM.TEST09

4、16(SEQ,SEQTIME) VALUES(NVL((SELECTMAX(SEQ)FROMSYSTEM.TEST0916)+1,0),SYSDATE);4  COMMIT;5EXCEPTION6  WHENOTHERSTHEN7    DBMS_OUTPUT.PUT_LINE('Exceptionhappened,datawasrollback');8    ROLLBACK;9END; 在SQLWindow窗口中执行以上存储过程,执行完成以后,查看Objects下的Procedures菜单,可以看到新建的存储过程如图:TEST_PROC前面的图标没

5、有红色的标记,表示存储过程正常;(3)检查oracle的JOB运行环境我这里遇到的只是要检查一下oracle的JOB队列的进程数,如果为0表示不运行JOB,虽然网上说一般默认为10,但是我安装oracle以后就不知道为什么是0。查看进程数:修改进程数(如果你的是0,才需要按照以下语句修改):我这里已经改为10,假如我要改为11来模拟以下这个操作;在PL/SQL的command窗口中输入以下语句:修改进程数altersystemsetjob_queue_processes=10scope=both;运行截图如下: 修改完以后我们这查看一下:看到了吧,我这

6、是是改为11了吧。补充说明:网上有的说修改这个进程数可以修改oracle初始文件,最开始我是找到这个初始文件的位置,然后用notepad++打开后去修改,保存以后我重启oracle服务和电脑,但是发现此时用PL/SQL登陆oracle的时候,一直报无法识别指定的字符串,这里要说明这样操作不行。这里有个问题,我们要如何找到oracle初始文件的位置?可以在PL/SQL的commandwindow窗口中执行以下语句看到:我当时用notepad++修改的是下图阴影部分的内容:*.job_queue_processes=11 4.定制定时执行任务假设我们要每隔

7、两分钟向表test0916中插入一条记录,这里我们只需要每隔2分钟执行一次存储过程test_proc即可。在PL/SQL的commandwindow输入以下语句:job1varjob_numnumber;2begin3   dbms_job.submit(:job_num,'test_proc;',SYSDATE,'sysdate+2/24/60');4end; 执行过程的截图如下:执行完成以后记得点击PL/SQL的提交按钮; 5.查看执行结果(1)查看我们新增的JOB是否成功通过查看DBA_JOBS表中的WHAT字段可以看到最后一条记录即使我们刚新建

8、的定时任务;(2)查看test0916表是否插入了数据 6.其他相关说明(1)如何删除一个JO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。