DBMS_SCHEDULER.RUN_JOB
时间: 2024-11-06 19:36:52 浏览: 2
`DBMS_SCHEDULER.RUN_JOB` 是Oracle数据库管理系统提供的一种PL/SQL过程,用于执行指定的调度作业(Job)。该过程允许管理员或用户程序在当前会话中直接启动、停止或继续某个已配置好的Job。基本语法如下:
```sql
DBMS_SCHEDULER.RUN_JOB(
JOB_NAME IN VARCHAR2,
IMMEDIATELY IN BOOLEAN DEFAULT FALSE,
ACTION IN VARCHAR2 DEFAULT NULL,
PLS_INTEGER IN NUMBER DEFAULT NULL,
NLS_DATE_FORMAT OUT VARCHAR2
);
```
参数说明:
- `JOB_NAME`: 需要执行的Job的名称。
- `IMMEDIATELY`: 是否立即执行,默认为FALSE,即按照Job的正常调度时间点执行;设置为TRUE则立即执行。
- `ACTION`: 选填项,可取值为"CONTINUE"(从上次中断的地方继续)、"ABORT"(结束当前运行)等。
- `PLS_INTEGER`: 当ACTION为"CONTINUE"时,指定要跳过的步骤数。
- `NLS_DATE_FORMAT`: 如果ACTION="END", 返回最后一次成功的运行结束日期的时间戳格式。
调用此过程后,调度作业将按照预设的方式被执行。这个功能常用于调试和管理Job,确保它们按预期运行。
相关问题
DBMS_SCHEDULER详细用法
DBMS_SCHEDULER是Oracle数据库中的一个内置程序包,用于管理和调度作业、程序和链。它是Oracle Scheduler的主要接口,可以通过它来创建、修改和删除作业、程序和链,以及控制它们的执行时间和执行方式。
下面是一些DBMS_SCHEDULER的常见用法:
1. 创建作业
使用DBMS_SCHEDULER.CREATE_JOB过程可以创建作业。在创建作业时,需要指定作业名称、作业类型、作业所属的程序等信息。
2. 修改作业
使用DBMS_SCHEDULER.SET_ATTRIBUTE过程可以修改作业的属性,如作业的状态、开始时间、结束时间等。
3. 删除作业
使用DBMS_SCHEDULER.DROP_JOB过程可以删除作业。
4. 运行作业
使用DBMS_SCHEDULER.RUN_JOB过程可以手动运行作业。
5. 暂停作业
使用DBMS_SCHEDULER.DISABLE过程可以暂停作业的执行。
6. 恢复作业
使用DBMS_SCHEDULER.ENABLE过程可以恢复暂停的作业。
7. 创建程序
使用DBMS_SCHEDULER.CREATE_PROGRAM过程可以创建程序。在创建程序时,需要指定程序名称、程序类型、程序所属的语言等信息。
8. 修改程序
使用DBMS_SCHEDULER.SET_PROGRAM_ARGUMENT_VALUE过程可以修改程序的参数值。
9. 删除程序
使用DBMS_SCHEDULER.DROP_PROGRAM过程可以删除程序。
10. 创建链
使用DBMS_SCHEDULER.CREATE_CHAIN过程可以创建链。在创建链时,需要指定链名称、链包含的步骤等信息。
11. 修改链
使用DBMS_SCHEDULER.SET_CHAIN_STEP_ATTRIBUTE过程可以修改链的步骤属性,如步骤名称、步骤类型、步骤所属的程序等。
12. 删除链
使用DBMS_SCHEDULER.DROP_CHAIN过程可以删除链。
以上是一些DBMS_SCHEDULER的常见用法,具体使用方法可参考Oracle官方文档。
创建一个Oracle的job,job的内容是每天的23点都执行存储过程UP_MID_VIP一次,并且立即执行
好的,以下是一个每天23点执行一次存储过程UP_MID_VIP的Oracle的job的示例,并且该作业将在创建后立即执行一次:
```sql
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'UP_MID_VIP_JOB',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN UP_MID_VIP; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY; BYHOUR=23;',
enabled => TRUE,
auto_drop => FALSE,
comments => 'Job to update the data structure UP_MID_VIP every day at 23:00.'
);
DBMS_SCHEDULER.RUN_JOB('UP_MID_VIP_JOB', TRUE);
END;
/
```
请注意,上述代码中的`UP_MID_VIP`是一个示例存储过程,需要替换为实际的数据结构更新操作代码。同时,`auto_drop`参数被设置为`FALSE`,以便在作业完成后不自动删除该作业。此外,`DBMS_SCHEDULER.RUN_JOB`过程被用来立即执行该作业。
如果您想更改作业的运行时间或其他参数,可以在`CREATE_JOB`过程中修改相应的值。
阅读全文