oracle JOB 的创建列子
创建
begin
sys.dbms_job.submit(:job_feeid_create,'wlk_check_fee;',sysdate,'TRUNC(SYSDATE+1)');
commit;
end;
在命令控制台中这样就可以建产一个作业了。sysdate表示当前作业将来执行的时间,sysdate+1表示调用频率。
每天午夜12点 'TRUNC(SYSDATE + 1)'
每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'') + 12/24'
每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q') -1/24'
每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'
运行
begin
dbms_job.run(:job_feeid_create);
end;
查询作业记录
具体讲解:
1.确保Oracle的工作模式允许启动任务队列管理器
Oracle定时执行“Job Queue”的后台程序是SNP进程,而要启动SNP进程,首先要确保整个系统的模式是可以启动SNP进程的,这需要以 DBA的身份去执行如下命令:
svrmgrl>; alter system enable restricted session;
或sql>; alter system disenable restricted session;
利用如上命令更改系统的会话方式为disenable restricted,为SNP的启动创造条件。
2.确保Oracle的系统已经配置了任务队列管理器的启动参数
SNP的启动参数位于Oracle的初始化文件中,该文件放在$ORACLE_HOME/dbs路径下,如果Oracle的SID是myora8的话,则初始化文件就是 initmyora8.ora,在文件中对SNP启动参数的描述部分如下:
job_queue_process=n
job_queue_interval=N
第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。
第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为1~3600秒。事实上,该进程执行完当前任务后,就进入睡眠状 态,睡眠一段时间后,由系统的总控负责将其唤醒。
如果该文件中没有上面两行,请按照如上配置添加。配置完成后,需要重新启动数据库,使其生效。注意:如果任务要求执行的间隔很短的 话,N的配置也要相应地小一点。
3.将任务加入到数据库的任务队列中
用Oracle的dbms_job包中的存储过程,将任务加入到任务队列中:
what inarchar2,
next_date indate,
interval invarchar2,
no_parse inboolean)
其中:
●job:输出变量,是此任务在任务队列中的编号;
●what:执行的任务的名称及其输入参数;
●next_date:任务执行的时间;
●interval:任务执行的时间间隔。
下面详细讨论一下dbms_job.submit中的参数interval。严格地讲,interval是指上一次执行结束到下一次开始执行的时间间隔,当interval设置为null 时,该job执行结束后,就被从队列中删除。假如我们需要该job周期性地执行,则要用‘sysdate+m’表示。
将任务加入到任务队列之前,要确定执行任务的数据库用户,若用户是scott, 则需要确保该用户拥有执行包dbms_job的权限;若没有,需要以 DBA的身份将权利授予scott用户:
svrmgrl>; grant execute on dbms_job to scott;
4.将要执行的任务写成存储过程或其他的数据库可执行的pl/sql程序段
例如,我们已经建立了一个存储过程,其名称为my_job,在sql/plus中以scott用户身份登录,执行如下命令:
sql>; begin
dbms_job.submit(:n‘my_job;’,sysdate,
‘sysdate+1/360’);
commit;
end;
/
系统提示执行成功。
系统打印此任务的编号,例如结果为300。
如上,我们创建了一个每隔4分钟执行一次的任务号为300的任务。可以通过Oracle提供的数据字典user_jobs察看该任务的执行情况:
执行结果如下:
job next_date next_sec failures broken
300 2000/10/10 11:45:15 0 N
这表示任务号为300的任务,下一次将在2000/10/10 11:45:15执行,此任务的执行失败记录为0次。注意:当执行job出现错误时,Oracle将其记录在日志里,失败次数每次自动加1。当执行失败次数达到16时,Oracle就将该job标志为broken。此后,Oracle不再继续执行它,直到用户调用过程dbms_job.broken,重新设置为not broken,或强制调用dbms_job.run来重新执行它。
除了以上我们讨论的submit存储过程之外,Oracle还提供了其他许多存储过程来操作任务。例如:dbms_job.change 、 dbms_job.what、dbms_job.interval可以用来修改提交的任务。要想删除该任务,只需运行dbms_job.remove(n)即可,其中n为任务号。
oracle JOB 的创建列子相关推荐
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...
- oracle中表空间创建,Oracle 如何创建表空间
在Oracle中如何创建表空间呢?主要有两种方式:一种是用sql命令的方式,另外一种是通过Oracle客户端Enterprise Manager Console来创建.下面分别介绍一下: 1 通过sq ...
- Oracle 序列的创建和使用
Oracle 序列的创建和使用 创建序列 create sequence seq_a minvalue 1000 maxvalue 99999999 start with 1000 increment ...
- oracle基于dblink创建视图,【案例】Oracle dblink 数据库连接dblink insert操作数据类型发生改变...
天萃荷净 开发DBA反映Oracle数据库两库之间通过dblink相连.在使用DML语句insert插入数据时操作的数据类型发生了改变 1.Oracle insert列属性 [oracle@saas- ...
- oracle中如何创建一个过程,如何开发ORACLE存储过程
一. 概述 Oracle存储过程开发的要点是: • 使用Notepad文本编辑器,用Oracle PL/SQL编程语言写一个存储过程; • 在Oracle数据库中创建一个存储过程; • 在Oracle ...
- oracle为什么要创建数据库,手动创建Oracle数据库之前因后果
对于许多数据库管理员来说,究 竟是不是一个难以管理和驾驭的怪兽级数据库,会不会让他们管理生涯饱受折磨?当看到其命令行界面时,很多人会问这么一个问题.如果你想通过一个应用程序操 控使用这个数据库,那么你 ...
- 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
墨墨导读:本文描述如何在Oracle Cloud中创建并访问容器服务.为了简单,所有的操作都是针对root隔离区. 创建允许容器运行的政策官方文档链接 这一步是必须的,否则可以增加容器容器. 官方文档 ...
- oracle报错ora-00200,oracle 11gR2 rac 创建database报ORA-00200错误
oracle 11gR2 rac创建数据库时,报ORA-00200错误,提示权限不够 NOTE: MARK has subscribed NOTE: Loaded library: System SU ...
- Oracle查询所有序列;[oracle中如何创建表的自增ID(通过序列);oracle sql语句大全
Oracle查询所有序列 oracle sql语句大全 oracle中如何创建表的自增ID(通过序列)
最新文章
- Spring实战之二:装配Bean
- Android输入系统(三)InputReader的加工类型和InputDispatcher的分发过程
- JAVA加密算法(DSA)
- 与虚拟现实技术相关联的计算机技术,虚拟现实技术与其他技术的关系是什么?-VR-形象思维VR...
- 执行文件mysql使用source 命令乱码问题
- NSString常用方法
- shardedJedisPool工具类
- ubuntu12.04 Struts2 配置过程中出现的错误
- cad批量选择相同块_在CAD中如何快速选择相同或类似的图形、图块?
- sql语句实现动态添加查询条件
- 密码学小知识(2):密码学三大顶会,信息安全四大顶会,网络与信息安全CCF推荐会议和期刊
- 四级英语口语模拟测试软件,英语四级口语模拟题:非常有用
- 数据结构课程设计 神秘国度的爱情故事
- 码农:用git怕丢代码,每次都备份,同事:不学习的人真可怕!
- QT实现固高运动控制卡示波器
- 浅谈客户端,服务器端,终端
- 爱家Aijiacms高端大型房产门户系统V9源码+带手机端
- 高调华美戒指 流动于指间的时尚
- 软件测试01 概念、流程、分类、策略
- matplotlib 绘图入门详解
热门文章
- Silverlight杂记Media和SMF播放控件推荐
- 【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码
- 重装系统失败解决办法|修复方法
- 洪金宝坦言婚姻全靠“忍”。网友:好男人啊
- 关于BMP格式图片在终端显示的具体做法(超详细)
- springboot数据库敏感数据加密解密
- python tell_Python 文件 tell() 使用方法及示例
- 快醒醒吧!你连基础的JVM运行时内存布局都忘了?Java面试题及解析
- 源代码——传智播客页面
- 如何选择适合你的兴趣爱好(四十八),手风琴