首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>oracle>正文

解析:JOB的Interval输入参数过长的问题

http://www.oklinux.cn  2007-11-12  ccidnet 43892  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

本文中,我们根据一段错误代码从而来分析如何解决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 过程已成功完成。

共2页: 上一页 1 [2] 下一页

上一篇:解析:基于Oracle高性能动态SQL程序开发   下一篇:解析:物化视图刷新中出现的“约束冲突”

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·解析:物化视图刷新中出现的“约束冲突”
·解析:基于Oracle高性能动态SQL程序开发
·轻松掌握Oracle Peeking 绑定变量的控制
·细化解析:怎样恢复一个丢失的 数据文件
·解析:用dbv和RMAN检查数据文件中的坏块
·细化解析:怎样处理Oracle数据库中的坏块
·解析:如何正确的更改监听器日志文件名称
·怎样使用SQL Server数据库的查询累计值
·使用Flashback Query 恢复误删除的数据
·实例解析:怎样获得当前 数据库的SCN值
·怎样使用ERRORSTACK进行错误跟踪及诊断
·细化解析:时间再次停止运行的解决方法
·解析:怎样在Oracle 9i中正确的转换时区
·教你轻松掌握如何把数据导入不同的表空间
·实例解析:sqlldr加载数据到不同表的问题
·教你快速掌握Oracle 9i数据库的移动过程
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·关于Oracle将目标数据库设为归档模式应
·Linux下OCI基础:配置Instant Client连
·Oracle中被锁定的解决办法
·Oracle 11G 无法连接到数据库实例故障
·浅谈创建Oracle数据库连接的两种方法
·如何从Oracle技术支持获得更多
·Oracle数据库中安全知识介绍
·Oracle推出Linux服务并不成功
·Oracle专用服务器的内存结构分布原则
·如何在RAC环境下修改Oracle字符集
·Oracle过程中执行动态SQL或DDL语句
·2008年Oracle错误、备份、升级等最热门
  阅读排行
·详解远程SHELL下安装配置RedHat ES 5的
·Ubuntu上安装Oracle 10G及相关配置
·Oracle高级复制(同步复制)配置步骤详细
·如何修改遗失的MySQL的ROOT用户密码
·Redhat Linux AS4 安装Oracle 10g(包括
·Linux下OCI基础:配置Instant Client连
·解决启动数据库时发生的ORA-12528错误
·在 Oracle Enterprise Linux 上升级到
·Oracle 10g表空间创建的完整步骤
·centos 5.0中成功安装Oracle10g (1020
·如何在RAC环境下修改Oracle字符集
·Oracle数据库导入导出方法的个人总结
·巧用Oracle执行计划机制提高查询性能
·Oracle 10g 在AIX 5.3上安装过程笔记
·Linux真机环境Oracle 10gR2 RAC 安装完
网摘收藏: