oracle 11g 创建定时任务
时间: 2024-10-08 21:27:00 浏览: 47
在Oracle 11g中创建定时任务通常通过调度程序(Oracle Scheduler, SQL*Plus命令或第三方工具如DBMS_SCHEDULER)来实现。以下是基本步骤:
1. **登录数据库**: 使用SQL*Plus连接到Oracle服务器,例如 `sqlplus / as sysdba`。
2. **启用调度程序** (如果未启用): 执行下面的命令开启调度服务:
```
ALTER SYSTEM SET scheduling=true SCOPE=both;
```
3. **创建调度器用户**: 如果还没有,可以创建一个用于管理调度作业的用户,例如:
```
CREATE USER scheduler IDENTIFIED BY password;
GRANT RESOURCE, DBA TO scheduler;
```
4. **启用调度器账户**: 对于新创建的用户,需要启用它:
```
ALTER USER scheduler ACCOUNT UNLOCK;
```
5. **创建调度器角色**: 这将允许用户创建和管理作业:
```
GRANT SELECT ON DBA_SCHEDULER_JOBS TO scheduler;
```
6. **创建作业**: 使用DBMS_SCHEDULER包创建作业,例如:
```sql
DECLARE
v_job_name VARCHAR2(30) := 'job_name';
v_program VARCHAR2(100) := 'PL/SQL_BLOCK';
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => v_job_name,
program => v_program,
enabled => TRUE,
comments => 'This is a test job',
start_date => SYSDATE + 1,
repeat_type => 'SUSPENDED', -- 需要指定周期
next_run_time => NULL,
end_date => NULL
);
END;
```
这里`program`部分应该替换为你实际想执行的PL/SQL块或者SQL脚本。
7. **激活并运行作业**: 调度程序会按照设定的时间间隔运行作业,可以通过以下命令查看和控制它们:
```
EXEC DBMS_SCHEDULER.RUN('JOB_NAME');
```
阅读全文