--创建测试表
create table AAHXL
(
ID NUMBER,
NAME VARCHAR2(100),
DT TIMESTAMP(6)
)
--创建存储过程
create or replace procedure pro_ins_aahxl is
li_id int;
-- lti_dt timestamp;
begin
select nvl(max(id), 0) + 1 into li_id from aahxl;
-- select to_char(sysdate, 'yyyyy-mm-dd hh:mi:ss') into lti_dt from dual;
insert into aahxl (id, name, dt) values (li_id, 'name' || li_id, sysdate);
commit;
end pro_ins_aahxl;
--创建job
DECLARE
job NUMBER;
begin
sys.dbms_job.submit(job => job,
what => 'NIOSUSER.PRO_INS_AAHXL;',
next_date => to_date('20-10-2009 18:13:42', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'SYSDATE+1/1440');
commit;
end;
/
--停止job
begin
sys.dbms_job.broken(job => :job,
broken => true,
next_date => to_date('01-01-4000', 'dd-mm-yyyy'));
commit;
end;
/
interval写法如下:
TRUNC(SYSDATE+1) --每1天
TRUNC(SYSDATE+7) --每7天
TRUNC(SYSDATE+30) --每30天
NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY') --每个周日
NEXT_DAY(TRUNC(SYSDATE), 7) --每个周六,如果每周第一天是周日的话
TRUNC(SYSDATE+1)+6/24 -- 每天6点
SYSDATE+30/1440 --每30分钟
TRUNC(LAST_DAY(SYSDATE)) + 1 --每月第一天
TRUNC(LAST_DAY(SYSDATE)) + 1 + 8/24 + 30/1440 --每月第一天8点30分
总结:oracle10之前使用dbms_job,之后用强大的dbms_schedule逐渐来替代了dbms_job.
相关推荐
`JOB_QUEUE_PROCESSES`参数决定了数据库同时能够处理的作业数量,调整这个参数可以影响作业的并发执行能力。 ```sql ALTER SYSTEM SET job_queue_processes=39 SCOPE=SPFILE; ``` #### 时间戳精度 在处理作业的...
`DBMS_JOB` 是 Oracle 数据库提供的用于调度任务的包,可以实现对定时任务的管理,包括任务的创建、修改、删除及执行等操作。该包提供了多种过程和函数,允许用户以灵活的方式控制定时任务的执行。 #### 二、主要...
- `JOB_QUEUE_PROCESSES`参数:表示Oracle能并发执行的作业数量。设置为0意味着禁用所有作业。可以使用`SHOW PARAMETER job_queue_processes`或查询`V$PARAMETER`视图来查看此参数,使用`ALTER SYSTEM SET job_queue...
使用 Oracle 的 DBMS_JOB 来实现任务计划管理 Oracle 数据库提供了一个功能强大的任务计划管理系统,称为 DBMS_JOB,可以帮助用户实现任务计划管理。在本文中,我们将详细介绍如何使用 Oracle 的 DBMS_JOB 来实现...
Oracle数据库的管理和保护是数据库管理员(DBA)的关键任务,RMAN(Recovery Manager)和DBMS_JOB包提供了自动化和高效管理这些任务的工具。RMAN是Oracle提供的一个强大的备份和恢复工具,它允许DBA执行复杂的数据库备份...
job => job_no, what => 'EXECUTE YOUR_PROCEDURE;', next_date => TRUNC(SYSDATE+1), interval => NULL ); END; ``` 3. **验证作业状态**:使用`DBMS_JOB.STATUS`函数检查作业的状态。 #### 4. 总结 通过...
接下来是dbms_job包,它用于调度和管理数据库作业,使得Oracle能够定期执行特定任务。submit过程创建新的作业,指定作业编号、执行操作、下次运行日期和间隔。remove过程用于删除作业,change过程可修改作业属性,如...
Oracle Job的执行基于Oracle的后台进程(JOB_QUEUE_PROCESSES),这些进程负责监控和运行待执行的任务。作业可以立即运行,也可以按照预设的时间间隔或日期运行。 6. **监控和管理Jobs** 可以使用DBA_JOBS视图...
"DB_job.zip_job_oracle"标题暗示了这个压缩包包含与创建、管理和监控Oracle数据库作业相关的资源,特别是通过SQL脚本来实现。 在描述中提到的"设置oracle过程的DB_job",可能是指创建一个数据库作业来定期执行某个...
ORACLE 数据库备份分为物理备份和逻辑备份。物理备份是数据库文件拷贝的备份,冷备份、热备份属于物理备份。 导出/导入(EXPORT/IMPORT)工具用于进行逻辑备份。冷备份是在数据库被正常关闭之后进行的数据文件的物理...
CREATE OR REPLACE FUNCTION dbms_job_to_scheduler_interval(job_interval IN VARCHAR2) RETURN VARCHAR2 AS calendar_sql VARCHAR2(4000); BEGIN -- 分析job_interval并生成对应的日历语法 IF job_interval ...
dbms_job.submit(:job_num, 'MY_Procedure;', sysdate, 'sysdate+1'); commit; end; ``` 更改作业 更改作业可以使用 `DBMS_JOB` 包中的 `CHANGE` 过程。该过程需要三个参数:`job`、`what` 和 `next_date`。其中...
你可以使用`DBMS_JOB.INFO`查询Job的状态,或者使用`DBMS_SCHEDULER`包(在Oracle 10g及以后版本推荐)进行更高级的Job管理,包括查看Job日志、暂停、恢复和删除Job。 8. **注意事项**: - 修改`next_date`以适应...
1. `JOB_QUEUE_PROCESSES`:定义了同时可以并发执行的作业数量,默认值为 10,最大值为 1000。 2. `JOB_QUEUE_INTERVAL`:设定作业调度的频率,默认值为 10 秒。在 Oracle 10g 及之后的版本中,这个参数不再存在。 ...
DBMS_JOB.BEGIN_JOB(v_job_number); DBMS_JOB.SUBMIT( job => v_job_number, what => 'BEGIN my_package.my_procedure; END;', next_date => TO_DATE('2022-01-01 21:00:00', 'YYYY-MM-DD HH24:MI:SS'), ...
首先,为了启用JOB队列,需要设置初始化参数`job_queue_processes`。通过SQL语句`alter system set job_queue_processes=n;`设置该参数,其中`n`代表期望的并发作业数量,最大值为1000。要查看当前的作业队列后台...