- 浏览: 98762 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
鸟气凌人:
最经正在看基础
Oracle PL/SQL中游标和游标变量的使用 -
matraxa:
讲得很清楚,顶一个!
JVM垃圾回收机制总结(1) —基本概念 -
ZavaKid:
顶楼主,通俗易懂。
byw,上面的图用什么软件画的?
JVM垃圾回收机制总结(1) —基本概念 -
47478220:
对这里还不太了解,学习了。
Java 虚拟机体系结构
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. Dbms_job.submit的语法为:
dbms_job.submit( job out binary_integer,
whatinarchar2,
next_date indate,
intervalinvarchar2,
no_parseinboolean);
其中:
●job:输出变量,是此任务在任务队列中的编号;
●what:执行的任务的名称及其输入参数;
●next_date:任务执行的时间;
●interval:任务执行的时间间隔。
将任务加入到任务队列之前,要确定执行任务的数据库用户,若用户是scott, 则需要确保该用户拥有执行包dbms_job的权限;若没有,需要以DBA的身份将权利授予scott用户:
svrmgrl> grant execute on dbms_job to scott;
3. 实例:
Java代码
SQL> declare
2 n number;
3 begin
4 dbms_job.submit(n, 'PKG_RPT_REVERSAL.P_FORM4_REVERSAL_ENTRY;',SYSDATE, null);
5 commit;
6 end;
7 /
L/SQL procedure successfully completed
SQL> declare
2 n number;
3 begin
4 dbms_job.submit(n, 'PKG_RPT_REVERSAL.P_FORM4_REVERSAL_ENTRY;',SYSDATE, null);
5 commit;
6 end;
7 /
PL/SQL procedure successfully completed
PKG_RPT_REVERSAL.P_FORM4_REVERSAL_ENTRY的代码如下:
Java代码
/*
* insert data into t_prod_tmp table
*/
PROCEDURE P_INSERT_PROD_TMP(I_PROCESS_DATE IN DATE)AS
M_START_DATE date;
M_END_DATE date;
BEGIN
select trunc(I_PROCESS_DATE, 'MONTH') into M_START_DATE from dual;
M_END_DATE := ADD_MONTHS(M_START_DATE, 1);
INSERT INTO T_PROD_TMP
(POLICY_ID, CHANGE_ID, SERVICE_ID, FINISH_TIME)
SELECT PC.POLICY_ID,PC.CHANGE_ID,PC.SERVICE_ID,PC.FINISH_TIME
FROM T_POLICY_CHANGE PC, T_ACTUARY_FORM4_TRANSACTION FT
WHERE PC.CHANGE_STATUS = '4' ----撤销状态
AND PC.SERVICE_ID = FT.TRANS_ID
AND FT.TRANS_STATUS = '1' -----有效Service
AND PC.FINISH_TIME >= M_START_DATE
AND PC.FINISH_TIME < M_END_DATE
AND PC.WITHDRAW_TIME <= PC.FINISH_TIME ---Service Undo操作时间应该先于finish_time
ORDER BY PC.POLICY_ID,PC.FINISH_TIME;
END P_INSERT_PROD_TMP;
/*
* Function Entry
*/
PROCEDURE P_FORM4_REVERSAL_ENTRY AS
BEGIN
---- insert data about service reversal Trans into T_PROD_TMP Table-----
P_INSERT_PROD_TMP(SYSDATE);
---some actions on database are as follows...
END P_FORM4_REVERSAL_ENTRY;
end PKG_RPT_REVERSAL;
/*
* insert data into t_prod_tmp table
*/
PROCEDURE P_INSERT_PROD_TMP(I_PROCESS_DATE IN DATE)AS
M_START_DATE date;
M_END_DATE date;
BEGIN
select trunc(I_PROCESS_DATE, 'MONTH') into M_START_DATE from dual;
M_END_DATE := ADD_MONTHS(M_START_DATE, 1);
INSERT INTO T_PROD_TMP
(POLICY_ID, CHANGE_ID, SERVICE_ID, FINISH_TIME)
SELECT PC.POLICY_ID,PC.CHANGE_ID,PC.SERVICE_ID,PC.FINISH_TIME
FROM T_POLICY_CHANGE PC, T_ACTUARY_FORM4_TRANSACTION FT
WHERE PC.CHANGE_STATUS = '4' ----撤销状态
AND PC.SERVICE_ID = FT.TRANS_ID
AND FT.TRANS_STATUS = '1' -----有效Service
AND PC.FINISH_TIME >= M_START_DATE
AND PC.FINISH_TIME < M_END_DATE
AND PC.WITHDRAW_TIME <= PC.FINISH_TIME ---Service Undo操作时间应该先于finish_time
ORDER BY PC.POLICY_ID,PC.FINISH_TIME;
END P_INSERT_PROD_TMP;
/*
* Function Entry
*/
PROCEDURE P_FORM4_REVERSAL_ENTRY AS
BEGIN
---- insert data about service reversal Trans into T_PROD_TMP Table-----
P_INSERT_PROD_TMP(SYSDATE);
---some actions on database are as follows...
END P_FORM4_REVERSAL_ENTRY;
end PKG_RPT_REVERSAL;
查看一下job执行情况:
SQL> select job,next_date,next_sec,failures,broken from user_jobs;
JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
---------- ----------- ------------------------ ---------- ------
1726 1/1/4000 00:00:00 N
2103 1/1/4000 00:00:00 N
2601 1/1/4000 00:00:00 N
4021 12/1/2009 00:00:00 0 N
6227 11/30/2009 13:22:22 0 N
6228 11/30/2009 13:22:17 0 N
973 1/1/4000 00:00:00 17 Y
2977 12/7/2009 00:00:00 0 N
2976 12/7/2009 00:00:00 0 N
3579 1/1/4000 00:00:00 16 Y
13063 12/1/2009 00:00:00 0 N
13149 12/1/2009 00:00:00 0 N
19683 11/30/2009 13:22:22 0 N
21929 11/30/2009 13:22:17 0 N
21930 11/30/2009 13:22:22 0 N
如果事务到预定时间并没有执行,排除是过程本身的问题外,可能的原因是初始化参数job_queue_processes值为0或没有设置。用alter system set job_queue_processes=n;(n>0)做好设置。注:job_queue_processes最大值为1000
发表评论
-
Oracle中函数使用技巧(2) - NULLIF
2013-07-09 01:42 835NULLIF 函数 功能 通过比较表达式提供 ... -
Oracle中函数使用技巧(1) - Decode
2013-07-09 01:38 704ecode()函数是ORACLE PL/SQL是功能强大的函 ... -
Oracle数据库备份与恢复的三种方法
2013-07-09 00:56 667Oracle数据库有三种标准的备份方法,它们分别是导出/导 ... -
Oracle 字符集详解
2013-07-09 00:31 618一、什么是Oracle字符集 Oracle字 ... -
Oracle中逻辑导出Exp/导入Imp详解
2013-07-09 00:27 978导入/导出是O ... -
Oracle触发器详细介绍(二)
2011-08-11 15:46 1355Sql代码 --触发器 trigger ... -
Oracle 游标的使用(二)
2011-08-11 15:44 1247Sql代码 --ref 游标 /* ... -
exp/imp命令详解
2011-06-27 16:45 1184exp/imp两个命令可以说是oracle中最常用的命令了。 ... -
ora-00020超出最大进程数的解决方法
2011-06-23 09:42 1812一般原因是因为你的应用程序的连接数超过了ORACLE系统设 ... -
ORACLE中客户端连接服务器端常见问题与解决
2011-06-23 09:36 1066要排除客户端与服务器 ... -
Oracle 常用数据字典
2011-06-23 09:33 895--Oracle 数据字典 --Oracle 数据字典 ... -
ORACLE函数大全
2011-04-14 16:55 668SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制 ... -
ORACLE面试题及答案
2011-04-14 16:54 14841.解释冷备份和热备份 ... -
Oracle(SQL)优化
2011-04-14 16:47 8211. 选用适合的优化器 Ora ... -
ORACLE AUTOTRACE介绍
2011-04-14 16:46 1069AUTOTRACE是一项 SQL*Plus 功 ... -
Oracle数据字典
2011-04-14 16:44 782oracle数据库系统是一个复杂的软件系统。如果不了解 ... -
Oracle SQL合并查询笔记
2010-11-14 10:45 1117在Oracle sql查询过程当中,可以使用 ... -
Oracle SQL子查询笔记
2010-11-14 00:53 2395子查询是指嵌入在其他SQL语句中的SELECT语 ... -
Oracle 连接查询学习笔记
2010-11-13 20:51 779一、内连接和外连接 内连接用于返回满足连接条件的记录;而 ... -
Oracle 统计分组语句
2010-11-12 17:24 1359在应用系统开发中,进行需要统计数据库中的数据,当执 ...
相关推荐
JOB使用 在Oracle中实现后台自动执行的定时操作
ORACLE定时任务不能自动执行的检查修复步聚。 oracle定时任务有时不能自动执行,据网上说可能是某个版本的BUG,一般通过这些步骤就能恢复了。 这是本人结合网络上的知识,解决实际问题时记录的。
Oracle定时执行存储过程 Oracle定时执行存储过程
Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER ...管理,但DBMS_JOB 包的使用相对比较简单,也基本能够满足定时执行计划任务的需求,故 接下来就先看看DBMS_JOB 包的使用方法。
在工作中常用到自动执行一些统计查询语句,这个应该比较实用。
Oracle定时器的使用,可实现定时清除数据,定时汇总数据等功能。
众所周知,一般操作系统会提供定时执行任务的方法,例如Unix平台上提供了让系统定时执行任务的命令Crontab。但是对于某些需求,例如一些对数据库表的操作,最为典型的是证券交易所每日收盘后的结算,它涉及大量的...
任务队列管理器允许我们定制任务的执行时间,并提供了灵活的处理方式,还可以通过配 置,安排任务在系统用户访问量少的时段内执行,极大地提高了工作效率。...本文主要介绍了如何在Oracle数据库中实现定时操作。
用plsql建立oracle的定时器,方便数据库定时运行
-- job 创建 begin dbms_scheduler.create_job ( job_name => 'AGENT_LIQUIDATION_JOB', ... job_type => 'STORED_PROCEDURE', ... job_action => 'AGENT_... comments => '执行代理商清分程序' ); end;
这是一个关于oracle的数据库定时器,作用是每年的第一天的凌晨一时更新数据库。原理是先写一个存储过程,然后写一个定时器在job里面,数据库会自动监测,到了时间就会执行存储过程完成任务。
备份oracle数据库,并压缩打包,传至远程FTP服务器,做到本地异地同时备份,可自动清理本地过期备份,自动保留N个最新备份(针对此种备份,不针对文件夹),老的备份自动删除,将此文件加入系统任务计划,则可实现定时...
oracle触发器实现主键自动增长操作
实现了oracle的自动备份 ,可自选备份地址及数据库。
Oracle数据库的自动导入与导出,在许多地方有广泛的应用。例如:一个Oracle数据库应用系统开发结束后,如果要将系统安装到客户计算机上,就需要将初始数据导入到用户的Oracle数据库中。先把要安装的初始数据文件导出为...
oracle自动备份脚本程序,每天定时执行备份操作。
Centos7.6 下 Oracle 定时自动备份和 sudo 设置 本文将详细介绍 Centos7.6 下 Oracle 定时自动备份和 sudo 设置的过程。该过程包括编写数据库备份脚本文件、设置定时、sudo 设置等多个方面。 编写数据库备份脚本...
在Oracle数据库中,我们经常会用到定时器Job来让数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,...
利用WSH实现Oracle逻辑备份的自动执行.pdf