重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

oracle怎么建任务,oracle怎么运行

Oracle怎么建立一个计划任务

特别提示:

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比岭东网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式岭东网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖岭东地区。费用合理售后完善,10年实体公司更值得信赖。

oracle是执行完任务,才按照interval去计算下次执行时间!!!

为精确每个5分钟执行一个任务,必须自己计算时间。

如:trunc_minute(sysdate)+5/1440

create or replace function trunc_minute(v_date date) return date as

begin

return to_number(trunc(to_char(v_date, 'mi')/5))*5/(24*60) + trunc(v_date, 'hh24');

end;

oracle数据库怎么创建定时任务

工作中,我们使用的数据库大部分是oracle、mysql、db2、sql server等数据库,在使用oracle最匹配的工具plsql的时候,如果用plsql创建定时器呢看下面我简单介绍使用工具创建定时器的方法。

oracle怎么修改定时任务job

1. oracle job可用来完成一些后台数据库定时任务,支持SQL、PL/SQL等,具体语法可以参考有关资料,简单的话可以使用TOAD,PLSQL Developer这种工具。

2. select * from table1 for update; 锁定此表其它用户不可以执行写入操作。

3. EM即Enterprise Manager,代替8i中Enterprise Manager Console的一个BS工具,浏览器中访问,首先要安装配置正确,服务开启,可以用这个工具完成很多数据库管理维护的工作,非常强大的工具,

不知道我的回答是否全面,具体的需要你查找手册仔细研究的。

如何在Oracle中管理计划任务

在DBMS_JOB 使用中,我们需要知道每一次JOB 执行的时间,用于判断该JOB 调用的存储过程执行时间。这里你会说,这个在存储过程里也可以实现的,在存储过程中,执行前后加个时间戳记录到日志表中就可以实现。

是的。以前我们在处理这类需求时也是这么做的。

但从ORACLE 10.1 版本开始,ORACLE 开发了一个新的包DBMS_SCHEDULER 。这个包挺复杂的,以至于我在初次学习之后,就没再去用它了。功能太强大了,其实很多我们不需要的。

我们就有这个需求,看看DBMS_SCHEDULER 是如何解决的。

在SQLPLUS 中,使用DBMS_SCHEDULER.CREATE_JOB 创建计划任务,用于调度一个存储过程。

存储过程很简单,我为这个测试而创建的,就是向一张表里插入数据。

CREATE TABLE T1 AS SELECT SYSDATE AS AA FROM DUAL;

CREATE OR REPLACE PROCEDURE SP_TEST_T1 AS

BEGIN

INSERT INTO T1 SELECTD SYSDATE FROM DUAL;

COMMIT;

END;

这个存储过程没有输入输出参数,是为了JOB 调用方便。如果实际运行过程中有参数,我们就写一个存储过程封装它,再放入JOB 中调用。

例如:

CREATE PROCEDURE GATHER_GTJA_STATS

AS

BEGIN

SYS.DBMS_STATS.GATHER_SCHEMA_STATS(OWNNAME = 'GTJA',ESTIMATE_PERCENT = 30,METHOD_OPT = 'FOR ALL INDEXED COLUMNS SIZE AUTO',CASCADE = TRUE,OPTIONS = 'GATHER');

END;

使用DBMS_SCHEDULER.CREATE_JOB 创建一个JOB, 调用存储过程SP_TEST_T1 ,执行间隔2 分钟。这里的JOB_NAME 名称可以自己定义,这个摆脱了DBMS_JOB 中JOB 号不能自定义的缺点。

 

EXEC DBMS_SCHEDULER.CREATE_JOB(JOB_NAME = 'JOB_SP_TEST_T1',JOB_TYPE = 'STORED_PROCEDURE',JOB_ACTION ='SP_TEST_T1' ,START_DATE = SYSDATE ,REPEAT_INTERVAL = 'FREQ=MINUTELY; INTERVAL=2');

该命令执行成功后,可以在*_SCHEDULER_JOBS 中看到JOB 的配置值。

SELECT * FROM DBA_SCHEDULER_JOBS;

SELECT * FROM USER_SCHEDULER_JOBS WHERE JOB_NAME='JOB_SP_TEST_T1';

使用该命令新建的JOB ,默认是不执行的,需要将其状态改成可执行状态。

EXEC DBMS_SCHEDULER.ENABLE(NAME = 'JOB_SP_TEST_T1');

可以删除重建它。

EXEC DBMS_SCHEDULER.DROP_JOB(JOB_NAME = 'JOB_SP_TEST_T1');

EXEC DBMS_SCHEDULER.CREATE_JOB(JOB_NAME = 'JOB_SP_TEST_T1',JOB_TYPE = 'STORED_PROCEDURE',JOB_ACTION = 'SP_TEST_T1',START_DATE = TO_DATE('2012-06-12 15:30:00','YYYY-MM-DD HH24:MI:SS') ,REPEAT_INTERVAL = 'FREQ=DAILY');

这个创建过程而言,其实和DBMS_JOB 创建JOB 的差别不大,但DBMS_SCHEDULER 可配置的地方就太多了。执行时间间隔非常非常灵活,这里不做详述了,具体请看ORACLE 官方文档。

DBMS_SCHEDULER 针对每一次JOB 执行,都做了详细记录,因此,可以查询到每一次JOB 执行的时间了。

具体可以查看两类视图*_SCHEDULER_JOB_LOG 和*_SCHEDULER_JOB_RUN_DETAILS 。

SELECT * FROM DBA_SCHEDULER_JOB_LOG;

SELECT * FROM DBA_SCHEDULER_JOB_RUN_DETAILS;

如果嫌日志太多了,可以使用PURGE_LOG 去清理。

EXECUTE DBMS_SCHEDULER.PURGE_LOG;

这个DBMS_SCHEDULER 包的功能太多了,用起来也累,所以很多人还是选择DBMS_JOB 。

oracle 创建定时任务执行存储过程

可以用图形化界面来创建JOB,如图:在PL/SQL的项目DBMS_JOBS中进行新建。

填写好上面标红的地方后,点击应用即可生成计划!

oracle 添加一个计划任务 每天凌晨两点 定时执行一个存储过程 求详细步骤!!急!!

在你的存储过程里面定义一个变量:

v_HH24 CHAR(2) := '00';

begin后面给变量赋值:

v_HH24 := to_char(sysdate, 'HH24');

然后在你执行的代码外面加上:

IF v_HH24 = '02' THEN

你的代码;

end if;

然后使用下面的脚本创建job:

begin

sys.dbms_job.submit(job = :job,

what = '你的存储过程名字;',

next_date = to_date('01-06-2013 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),

interval = 'SYSDATE+60/1440');

commit;

end;

/


本文题目:oracle怎么建任务,oracle怎么运行
文章起源:http://cqcxhl.cn/article/hsocjj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP