- 论坛徽章:
- 0
|
[请大家一起整理]oracle中的经常用到的包
二:dbms
DBMS_JOB 包介绍
调度任务队列里的任务要使用DBMS_JOB包中的过程。使用任务队列不需要特别的数据库特权。任何可以使用这些过程的用户都可以使用任务队列。
1:参数
SUBMIT
-- 向任务队列提交一个任务
REMOVE
-- 从任务队列中删除指定的任务
CHANGE
-- 改变任务
WHAT
-- 改变指定任务的任务内容
NEXT_DATE
-- 改变指定任务的下一次执行时间
INTERVAL
--改变指定任务的执行时间间隔。
BROKEN
-- 禁止指定任务的执行
RUN
--强制执行指定的任务
----------------------------------------------------------------------------------------------------------------------
2:使用方法
1)向任务队列提交一个任务(submit)
DBMS_JOB.SUBMIT( job OUT BINARY_INTEGER,
what IN VARCHAR2,
next_date IN DATE DEFAULT SYSDATE,
interval IN VARCHAR2 DEFAULT 'null',
no_parse IN BOOLEAN DEFAULT FALSE)
其中interval指定方式为:
'SYSDATE + 7' 每7天一次
'SYSDATE + 1/48' 每半个小时一次
'NEXT_DAY(TRUNC(SYSDATE), ''MONDAY'') + 15/24' 每个礼拜一的下午3点执行
'NEXT_DAY(ADD_MONTHS(TRUNC(SYSDATE, ''Q''), 3), ''THURSDAY'')'每个季度的第一个星期四
2)删除任务队列中的任务(remove)
DBMS_JOB.REMOVE(job IN BINARY_INTEGER)
The following statement removes job number 14144 from the job queue:
DBMS_JOB.REMOVE(14144);
3)指定任务的任务内容(WHAT)
DBMS_JOB.WHAT( job IN BINARY_INTEGER,
what IN VARCHAR2)
4)指定下次执行时间,如果你暂时不想让它执行可以设成3004年,呵呵!(next_date)
DBMS_JOB.NEXT_DATE( job IN BINARY_INTEGER,
next_date IN DATE)
5)指定任务的执行时间间隔(NTERVAL)
DBMS_JOB.INTERVAL( job IN BINARY_INTEGER,
interval IN VARCHAR2)
-----------------------------------------------------------------------------------------------------------------------
3:查询状态
显示任务的状态和失败执行的次数。
SELECT job, next_date, next_sec, failures, broken
FROM user_jobs;
JOB NEXT_DATE NEXT_SEC FAILURES B
---------- --------- -------- ---------- -
9125 01-NOV-94 00:00:00 4 N
14144 24-OCT-94 16:35:35 0 N
41762 01-JAN-00 00:00:00 16 Y
显示当前运行的任务的信息。
SELECT sid, r.job, log_user, r.this_date, r.this_sec
FROM dba_jobs_running r, dba_jobs j
WHERE r.job = j.job;
SID JOB LOG_USER THIS_DATE THIS_SEC
---------- ---------- -------------------- --------- --------
12 14144 JFEE 24-OCT-94 17:21:24
25 8536 SCOTT 24-OCT-94 16:45:12 |
|