Oracle创建作业与计划程序详细步骤
需积分: 9 184 浏览量
更新于2024-09-10
收藏 2KB TXT 举报
"Oracle创建job的示例"
在Oracle数据库中,`job` 是一个计划的任务,它允许你在预定义的时间点或按照特定的周期执行数据库操作。本示例介绍了如何创建、配置和管理Oracle job。
1. 创建Job
创建一个名为 `HR.CREATE_LOG_TABLE_JOB` 的job,它的主要目的是在`America/New_York` 时间区创建一个名为 `session_history` 的表。首先,你需要定义job的基本属性,如名称、类型、动作、开始时间、作业类等。以下是如何创建此job的PL/SQL代码:
```sql
BEGIN
sys.dbms_scheduler.create_job(
job_name => '"HR"."CREATE_LOG_TABLE_JOB"',
job_type => 'PLSQL_BLOCK',
job_action =>
'begin
execute immediate ''create table session_history (
snap_time TIMESTAMP WITH LOCALTIMEZONE,
num_sessions NUMBER
)''; end;',
start_date => systimestamp at time zone 'America/New_York',
job_class => 'DEFAULT_JOB_CLASS',
comments => 'Create the SESSION_HISTORY table',
auto_drop => FALSE,
enabled => TRUE
);
END;
/
```
在上述代码中,`job_name` 指定了作业的名称,`job_type` 为PL/SQL块,`job_action` 定义了要执行的PL/SQL代码,即创建 `session_history` 表。`start_date` 设置了作业的开始时间,`job_class` 为默认的作业类,`auto_drop` 为FALSE表示不自动删除作业,`enabled` 为TRUE表示作业创建后立即启用。
2. 创建Program
程序 (`program`) 是Oracle调度器中的另一种资源,它可以封装一个可执行的操作,比如SQL命令或操作系统命令。以下是如何创建一个名为 `mypro` 的program,该program用于切换日志文件:
```sql
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name => 'mypro',
program_action => 'execute immediate ''alter system switch logfile'';',
program_type => 'PLSQL_BLOCK',
enabled => TRUE
);
END;
/
```
这里的 `program_action` 设定了执行的PL/SQL块,即切换数据库的日志文件。
3. 创建Scheduler(调度)
创建一个名为 `mysch` 的调度,它将决定job或program何时运行。你可以设置调度的开始时间、频率和其他参数。例如:
```sql
BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE(
schedule_name => 'mysch',
start_date => systimestamp at time zone 'America/New_York',
repeat_interval => 'FREQ=DAILY;INTERVAL=1;'
);
END;
/
```
在这个例子中,`repeat_interval` 参数定义了调度的重复间隔,这里是每天一次。
4. 链接Job和Scheduler
一旦有了job、program和schedule,你需要将它们关联起来,以便作业在指定的时间运行。例如,你可以这样链接 `HR.CREATE_LOG_TABLE_JOB` 和 `mysch`:
```sql
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => 'HR.CREATE_LOG_TABLE_JOB',
attribute => 'schedule',
value => 'mysch'
);
END;
/
```
这使得 `HR.CREATE_LOG_TABLE_JOB` 在 `mysch` 规定的时间运行。
5. 查看Job状态
要监控作业的运行情况,可以运行以下查询:
```sql
SELECT job_name, status, error#, run_duration
FROM DBA_SCHEDULER_JOB_RUN_DETAILS;
```
这将显示job的名称、状态、错误号以及运行持续时间。
总结:
Oracle的job、program和scheduler机制为数据库管理员提供了强大的自动化工具,可以按需执行各种任务,如数据维护、报告生成等。通过创建、配置和管理这些资源,你可以确保数据库操作按照预定的时间表自动进行,从而提高效率并减少手动干预的需求。
149 浏览量
112 浏览量
147 浏览量
178 浏览量
101 浏览量
103 浏览量
245 浏览量
953 浏览量
temp56
- 粉丝: 0
- 资源: 3
最新资源
- SAP服务器端安装手册
- MATLAB编程(第二版)-菜鸟入门教材
- The C++ Programming Language Special 3rd Edition
- Eclipse中安装SVN插件
- 微软Speech SDK 5.1开发语音识别系统的主要步骤
- ExtJs简明教程使用ExtJs
- smallworld GoogleEarth配置
- VS2005微软官方教程
- smallworld安装
- 空间数据处理插值 -非常系统
- 编写shell脚本编写shell脚本编写shell脚本
- 新编Windows API参考大全
- smallworld使用配置
- OSWorkflow教程
- OSWorkflow中文手册
- C#连接各种数据库的方法