DBMS_JOB.run详细用法
时间: 2024-03-16 18:48:04 浏览: 25
DBMS_JOB是Oracle数据库提供的一种定时任务调度工具,其中run是其中一个方法,用于启动一个定时任务。
具体用法如下:
1. 创建一个定时任务
可以使用DBMS_JOB.submit()方法创建一个定时任务,例如:
```
DBMS_JOB.submit(job, 'BEGIN my_job_procedure; END;', sysdate+1/24);
```
其中,job为一个唯一的标识符,my_job_procedure为需要执行的存储过程,sysdate+1/24表示任务将在当前时间的下一个小时开始执行。
2. 启动一个定时任务
使用DBMS_JOB.run()方法启动一个已经存在的定时任务,例如:
```
DBMS_JOB.run(job);
```
其中,job为需要启动的任务的标识符。
需要注意的是,DBMS_JOB.run()方法只会启动一次任务,如果需要定时执行,则需要使用DBMS_JOB.submit()方法创建一个新的任务。
另外,DBMS_JOB.run()方法需要在Oracle数据库中运行,无法在其他环境中运行。
相关问题
DBMS_JOB.SUBMIT详细用法
DBMS_JOB.SUBMIT 是 Oracle 数据库中的一个存储过程,用于提交一个作业并安排它在数据库中执行。它的详细用法如下:
1. 首先,需要在数据库中创建一个存储过程,来定义要执行的作业。例如:
CREATE OR REPLACE PROCEDURE my_job
IS
BEGIN
-- 执行需要执行的任务
...
END;
2. 然后,使用 DBMS_JOB.SUBMIT 存储过程来提交作业。例如:
DECLARE
job_id NUMBER;
BEGIN
DBMS_JOB.SUBMIT(
job_id => job_id,
what => 'BEGIN my_job; END;',
next_date => SYSDATE,
interval => 'SYSDATE + 1/24',
no_parse => FALSE
);
COMMIT;
END;
这个例子中,DBMS_JOB.SUBMIT 存储过程接受以下参数:
- job_id:作业的 ID,由存储过程返回。
- what:要执行的作业,可以是任何合法的 SQL 语句或 PL/SQL 块。
- next_date:作业的第一次执行时间。在这个例子中,我们使用了当前系统时间。
- interval:作业的执行间隔时间。在这个例子中,我们使用了每小时执行一次的间隔。
- no_parse:一个布尔值,指示是否跳过对 what 参数的语法分析。在这个例子中,我们将其设置为 FALSE。
3. 提交作业后,可以使用 DBMS_JOB.BROKEN 存储过程来标记作业为失败,使用 DBMS_JOB.REMOVE 存储过程来删除作业,使用 DBMS_JOB.CHANGE 存储过程来修改作业的执行时间或执行间隔时间。
注意:DBMS_JOB 存储过程已经在 Oracle 12c 版本中被弃用,取而代之的是 DBMS_SCHEDULER 存储过程。如果您使用的是 Oracle 12c 或更高版本,建议使用 DBMS_SCHEDULER 存储过程来管理作业。
DBMS_SCHEDULER.CREATE_JOB详细用法
DBMS_SCHEDULER.CREATE_JOB过程是用于创建作业的一个子程序。它可以创建多种类型的作业,如单次作业、循环作业、链式作业等。下面是DBMS_SCHEDULER.CREATE_JOB的详细用法:
语法:
```
DBMS_SCHEDULER.CREATE_JOB (
job_name IN VARCHAR2,
job_type IN VARCHAR2,
job_action IN VARCHAR2,
number_of_arguments IN PLS_INTEGER DEFAULT 0,
start_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
repeat_interval IN VARCHAR2 DEFAULT NULL,
end_date IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
job_class IN VARCHAR2 DEFAULT 'DEFAULT_JOB_CLASS',
enabled IN BOOLEAN DEFAULT TRUE,
auto_drop IN BOOLEAN DEFAULT FALSE,
comments IN VARCHAR2 DEFAULT NULL,
credential_name IN VARCHAR2 DEFAULT NULL,
destination_name IN VARCHAR2 DEFAULT NULL,
job_style IN VARCHAR2 DEFAULT 'REGULAR',
restartable IN BOOLEAN DEFAULT FALSE);
```
参数说明:
- job_name:作业名称,必填项。
- job_type:作业类型,可选值为'PLSQL_BLOCK'、'STORED_PROCEDURE'、'EXECUTABLE'、'CHAIN'、'SQL_SCRIPT'、'BACKUP_SCRIPT'、'COPY_SCRIPT'、'DELETE_FILES'、'EXTERNAL_SCRIPT'、'IN_MEMORY_SCRIPT'、'MANAGE_FILES'、'MOVE_FILES'、'RESTORE_SCRIPT'、'UPDATE_INDEXES'、'UPDATE_STATISTICS',必填项。
- job_action:作业所执行的动作,必填项。根据不同的作业类型,job_action的值也有所不同。如对于PLSQL_BLOCK类型的作业,job_action可以是一个PL/SQL代码块;对于EXECUTABLE类型的作业,job_action可以是一个可执行文件的路径;对于CHAIN类型的作业,job_action可以是一个链名称等。
- number_of_arguments:作业所需的参数个数,默认为0。
- start_date:作业的开始时间,可以是一个时间戳或一个时间字符串,默认为NULL。
- repeat_interval:作业的重复间隔,可以是一个时间字符串或时间间隔表达式,默认为NULL。
- end_date:作业的结束时间,可以是一个时间戳或一个时间字符串,默认为NULL。
- job_class:作业所属的作业类别,必须是先前用DBMS_SCHEDULER.CREATE_JOB_CLASS创建的类别之一。默认为'DEFAULT_JOB_CLASS'。
- enabled:作业是否启用,可选值为TRUE或FALSE,默认为TRUE。
- auto_drop:作业是否自动删除,可选值为TRUE或FALSE,默认为FALSE。
- comments:作业的注释,可选。
- credential_name:作业所使用的凭证名称,可选。
- destination_name:作业所使用的目标名称,可选。
- job_style:作业类型,可选值为'REGULAR'或'LIGHTWEIGHT',默认为'REGULAR'。
- restartable:作业是否可重启,可选值为TRUE或FALSE,默认为FALSE。
示例:
下面是一个使用DBMS_SCHEDULER.CREATE_JOB创建PL/SQL_BLOCK类型作业的示例:
```
DECLARE
job_name VARCHAR2(30) := 'MY_JOB';
job_type VARCHAR2(30) := 'PLSQL_BLOCK';
job_action VARCHAR2(4000) := 'BEGIN DBMS_OUTPUT.PUT_LINE(''Hello World!''); END;';
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => job_name,
job_type => job_type,
job_action => job_action,
enabled => TRUE,
auto_drop => FALSE,
comments => 'This is my first job'
);
END;
```
在上面的示例中,我们创建了一个名为'MY_JOB'的作业,作业类型为'PLSQL_BLOCK',作业动作为一个简单的PL/SQL代码块,输出一个'Hello World!'的字符串。作业启用并且不会自动删除,同时添加了一条注释。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)