利用ORACLE JOB 订制任务
2016-10-31 09:11
337 查看
一个简单例子:
创建测试表
SQL> create
table a(a date);
表已创建。
创建一个自定义过程
SQL> create or
replace procedure
test as
2
begin
3
insert into
a values(sysdate);
4
end;
5
/
过程已创建。
创建JOB
SQL> variable
job1 number;
SQL>
SQL> begin
2
dbms_job.submit(:job1, 'test; ',sysdate,
'sysdate+1/1440 '); --每天1440分钟,即一分钟运行test过程一次
3
end;
4
/
PL/SQL 过程已成功完成。
运行JOB
SQL> begin
2
dbms_job.run(:job1);
3
end;
4
/
PL/SQL 过程已成功完成。
SQL> select
to_char(a, 'yyyy/mm/dd hh24:mi:ss ')
时间 from
a;
时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24
删除JOB
SQL> begin
2
dbms_job.remove(:job1);
3
end;
4
/
PL/SQL 过程已成功完成。
select job,to_char(next_date, 'yyyy-mm-dd
hh24:mi:ss ') from
all_jobs;
----------job的使用:
DBMS_JOB.SUBMIT(:jobno,//job号
'your_procedure; ',//要执行的过程
trunc(sysdate)+1/24,//下次执行时间
'trunc(sysdate)+1/24+1 '//每次间隔时间
);
删除job:dbms_job.remove(jobno);
修改要执行的操作:job:dbms_job.what(jobno,what);
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
启动job:dbms_job.run(jobno);
例子:
VARIABLE jobno number;
begin
DBMS_JOB.SUBMIT(:jobno,
'Procdemo; ',//Procdemo为过程名称
SYSDATE,
'SYSDATE +
1/720 ');
commit;
end;
-----修改job_queue_processes的值(保证其不为0否则JOB不自动运行)
可通过select * from
v$parameter;查看其值;
方法1,startup pfile=
'C:\oracle\ora90\database\initorcl.ora ';
需要修改initorcl.ora文件的job_queue_processes参数,然后重新启动数据库以后才能生效
方法2,alter system set
job_queue_processes=10
不需要重新启动数据库就能生效,系统自动修改init.ora文件
相关文章推荐
- ORACLE 利用SQL_TRACE命令跟踪!
- Oracle利用job实现定时执行任务
- oracle job学习
- oracle job创建
- oracle利用job创建一个定时任务,定时调用存储过程
- 利用oracle的job定时执行任务
- oracle定时任务(dbms_job)
- OracleJOB的建立,定时执行任务
- oracle job建立(定时执行任务)
- Oracle JOB的建立,定时执行任务
- Oracle诊断案例-Job任务停止执行
- 利用windows任务计划实现oracle的定期备份
- oracle定时任务(dbms_job)
- Oracle诊断案例-Job任务停止执行[最终版]
- Couldn't store job: Driver's Blob representation is of an unsupported type: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB
- 如何利用"c3p0"配置Oracle和MySQL连接
- oracle的定时任务job
- oracle job任务异常案例诊断
- Oracle JOB的建立,定时执行任务
- Oracle中的定时执行任务job