网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  解析:job的interval输入参数过长的问题     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:125次  录入:管理员--2007-11-15  
 

本文中,我们根据一段错误代码从而来分析如何解决job的interval输入参数过长的问题。

给出的运行job的pl/sql代码为:

declare
job binary_integer := :job;
next_date date := :mydate;
broken boolean := false;
begin
what
:mydate := next_date;
if broken then :b := 1; else :b :=0; end if;
end;

并说明了如何使用next_date作为存储过程的输出参数,来指定下次job的下次运行时间。

第一次看到这里的时候,一方面是感叹这种内部的东西,一般人是无法得到的,只有tom这种内部人士才能得到;另一方面是佩服tom的功力,说实话,即使是把代码给我,我也想不出这么巧妙的方法。

这次重读这部分内容,有了一点新的想法,对于broken变量,是否也可以做点什么?

采用和上面类似的方法,可以控制job的行为,使job成功运行一次后,就自动停止不在执行。由于普通的一次性job,在运行后就从job视图中消失了,如果希望留下运行信息,则必须使用日志表,十分的麻烦。而采用下面的方法处理一次性job,可以方便将job的运行信息保留下来:

sql> conn /@yangtk as sysdba

已连接。

sql> grant execute on dbms_lock to yangtk;

授权成功。

sql> conn yangtk/yangtk@yangtk

已连接。

sql> create or replace procedure p_test (p_broken out boolean) as
2 begin
3 p_broken := true;
4 dbms_lock.sleep(5);
5 end;
6 /

过程已创建。

sql> declare
2 v_job number;
3 begin
4 dbms_job.submit(v_job, 'p_test(broken);', sysdate, 'sysdate + 1/1440');
5 commit;
6 end;
7 /

pl/sql 过程已成功完成。

sql> col what format a30
sql> select job, what, total_time, 
broken, failures from user_jobs;

job what total_time b failures
---------- ------------------------------ 
6 p_test(broken); 3 n

sql> select job, what, total_time, broken,
 failures from user_jobs;

job what total_time b failures
---------- ------------------------------ 
6 p_test(broken); 5 y 0

采用这种方法,运行一次后,job不再运行,但是job信息并没有丢失,仍然保留在user_jobs视图中。

 
 
上一篇: 解析:基于oracle高性能动态sql程序开发    下一篇: 解析:物化视图刷新中出现的“约束冲突”
  相关文档
实例讲解如何实现某种类型的分页功能 03-05
oracle数据库重做日志文件丢失后的恢复 02-03
巧用oracle备份集在测试机上做不完全恢复 06-13
使用type方式,解决in列表过长的问题 (1) 02-27
在unix裸设备与文件系统间移动oracle (1) 04-04
轻松掌握oracle密码文件的使用与维护 11-15
讲解oracle数据库自定义异常的使用方法 04-15
轻松解决启用数据库复制时出现的18483错误 05-14
Oracle中对像名大小写敏感性的深入解析 08-05
在Windows系统下完全卸载Oracle的好方法 09-29
在oracle 10g中如何解决ora-19815错误 04-03
灵活应用oracle数据查询时经常用到的关联 03-03
正确认识oracle peeking绑定变量的控制 01-24
如果有输出参数则必须使用output做修饰符 04-01
视图上含有row_number分析函数没法走索引 03-10
解决未找到oracle客户端和网络组件现象 04-22
实例讲解分区表的可用性及相关错误案例 (1) 03-31
判断字段中是否含有中文字符的实例脚本 01-31
oracle数据库中undo数据段的作用及类型 04-24
Oracle中利用哈希函数提高查询速度 04-11
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息