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

【赛迪网-it技术报道】本文中,我们根据一段错误代码从而来分析如何解决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视图中。

 
 
上一篇: job进程不能启动时间再次停止运行的现象    下一篇: 深入讲解memory_target与自动内存管理
  相关文档
快速掌握列值掩码技术隐藏敏感数据 11-15
轻松掌握Oracle中事务管理的概念 09-29
Oracle中查找和删除重复记录方法简介 04-11
移动一个带有lob字段的表到另外一个表空间 03-06
解析:用dbv和rman检查数据文件中的坏块 11-15
用简单的方法获取oracle语句的执行时间 05-16
通过幸存的oracle文件修复oracle9i数据 03-17
轻松掌握oracle数据库开发中序列的使用 08-05
Oracle专家调优秘密 01-15
深入研究Oracle数据库中空间管理的方法 06-10
for loop读取游标和open close的区别 04-15
oracle数据库内存参数调优技术个人总结 09-03
用一个示例讲解自治事务和非自治事务的区别 07-25
教你在Oracle中实现数据自动导入导出 04-12
如何使用 10203事件 跟踪 oracle块清除 11-20
创建一个表时表中列的顺序对性能的影响 (1) 03-28
建立用户组保证Oracle数据库安全性 04-11
轻松解决启用数据库复制时出现的18483错误 05-14
oracle数据库11g高级压缩特性 及压缩好处 09-22
用forall与bulk collect快速复制表数据 (1) 03-27
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息