知识大全 oracle中job的使用
Posted 过程
篇首语:对于攀登者来说,失掉往昔的足迹并不可惜,迷失了继续前时的危险。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle中job的使用相关的知识,希望对你有一定的参考价值。
一 设置初始化参数 job_queue_processes
sql> alter system set job_queue_processes=n;(n> )
job_queue_processes最大值为
查看job queue 后台进程
sql>select name description from v$bgprocess;
二 dbms_job package 用法介绍
包含以下子过程
Broken()过程
change()过程
Interval()过程
Isubmit()过程
Next_Date()过程
Remove()过程
Run()过程
Submit()过程
User_Export()过程
What()过程
Broken()过程更新一个已提交的工作的状态 典型地是用来把一个已破工作标记为未破工作
这个过程有三个参数 job broken与next_date
PROCEDURE Broken (job IN binary_integer
Broken IN boolean
next_date IN date :=SYSDATE)
job参数是工作号 它在问题中唯一标识工作
broken参数指示此工作是否将标记为破 TRUE说明此工作将标记为破 而FLASE说明此工作将标记为未破
next_date参数指示在什么时候此工作将再次运行 此参数缺省值为当前日期和时间
job如果由于某种原因未能成功之行 oracle将重试 次后 还未能成功执行 将被标记为broken重新启动状态为broken的job
有如下两种方式;
a 利用dbms_job run()立即执行该job
sql>begin
sql>dbms_job run(:jobno) 该jobno为submit过程提交时返回的job number
sql>end;
sql>/
b 利用dbms_job broken()重新将broken标记为false
sql>begin
sql>dbms_job broken (:job false next_date)
sql>end;
sql>/
Change()过程用来改变指定工作的设置
这个过程有四个参数 job what next_date与interval
PROCEDURE Change (job IN binary_integer
What IN varchar
next_date IN date
interval IN varchar )
此job参数是一个整数值 它唯一标识此工作
What参数是由此工作运行的一块PL/SQL代码块
next_date参数指示何时此工作将被执行
interval参数指示一个工作重执行的频度
Interval()过程用来显式地设置重执行一个工作之间的时间间隔数 这个过程有两个参数 job与interval
PROCEDURE Interval (job IN binary_integer
Interval IN varchar )
job参数标识一个特定的工作 interval参数指示一个工作重执行的频度
ISubmit()过程用来用特定的工作号提交一个工作 这个过程有五个参数 job what next_date interval与no_parse
PROCEDURE ISubmit (job IN binary_ineger
What IN varchar
next_date IN date
interval IN varchar
no_parse IN booean:=FALSE)
这个过程与Submit()过程的唯一区别在于此job参数作为IN型参数传递且包括一个由开发者提供的工作号 如果提供的工作号已被使用 将产生一个错误
Next_Date()过程用来显式地设定一个工作的执行时间 这个过程接收两个参数 job与next_date
PROCEDURE Next_Date(job IN binary_ineger
next_date IN date)
job标识一个已存在的工作 next_date参数指示了此工作应被执行的日期与时间
Remove()过程来删除一个已计划运行的工作 这个过程接收一个参数
PROCEDURE Remove(job IN binary_ineger);
job参数唯一地标识一个工作 这个参数的值是由为此工作调用Submit()过程返回的job参数的值 已正在运行的工作不能由调用过程序删除
Run()过程用来立即执行一个指定的工作 这个过程只接收一个参数
PROCEDURE Run(job IN binary_ineger)
job参数标识将被立即执行的工作
使用Submit()过程 工作被正常地计划好
这个过程有五个参数 job what next_date interval与no_parse
PROCEDURE Submit ( job OUT binary_ineger
What IN varchar
next_date IN date
interval IN varchar
no_parse IN booean:=FALSE)
job参数是由Submit()过程返回的binary_ineger 这个值用来唯一标识一个工作
what参数是将被执行的PL/SQL代码块
next_date参数指识何时将运行这个工作
interval参数何时这个工作将被重执行
no_parse参数指示此工作在提交时或执行时是否应进行语法分析 TRUE指示此PL/SQL代码在它第一次执行时应进行语法分析 而FALSE指示本PL/SQL代码应立即进行语法分析
User_Export()过程返回一个命令 此命令用来安排一个存在的工作以便此工作能重新提交
此程序有两个参数 job与my_call
PROCEDURE User_Export(job IN binary_ineger
my_call IN OUT varchar )
job参数标识一个安排了的工作 my_call参数包含在它的当前状态重新提交此工作所需要的正文
What()过程应许在工作执行时重新设置此正在运行的命令 这个过程接收两个参数 job与what
PROCEDURE What (job IN binary_ineger
What IN OUT varchar )
job参数标识一个存在的工作 what参数指示将被执行的新的PL/SQL代码
三 查看相关job信息
相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息
查看相关信息
SQL>SELECT JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
SQL>FROM DBA_JOBS;
JOB NEXT_DATE NEXT_SEC FAILURES B
JUN : : N
OCT : : N
JUN : : Y
rows selected
正在运行的JOB相关信息
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
HR OCT : :
QS OCT : :
rows selected
JOB QUEUE LOCK相关信息
SELECT SID TYPE ID ID
FROM V$LOCK
WHERE TYPE = JQ ;
SID TY ID ID
JQ
row selected
四 简单例子
创建测试表
SQL> create table myjob(a date);
表已创建
创建一个自定义过程
SQL> create or replace Procedure prc_myjob as
begin
insert into myjob values(sysdate);
end;
/
过程已创建
创建JOB
SQL> variable job number;
SQL> begin
dbms_job submit(:job prc_myjob; sysdate sysdate+ / ); 每天 分钟 即一分钟运行test过程一次
end;
/
PL/SQL 过程已成功完成
运行JOB
SQL> begin
dbms_job run(:job );
end;
/
PL/SQL 过程已成功完成
SQL> select to_char(a yyyy/mm/dd hh :mi:ss ) 时间 from TEST;
时间
/ / : :
/ / : :
/ / : :
删除JOB
SQL> begin
dbms_job remove(:job ); 如果知道job号 可以直接使用 如dbms_job remove( );
end;
/
PL/SQL 过程已成功完成
上面的是每间隔多久执行一次指定的job 那么如何设置定时定点job呢 如设置 月 号晚 点执行?
创建JOB
SQL> variable job number;
SQL> begin
dbms_job submit(:job prc_myjob; sysdate ADD_MONTHS(TRUNC(SYSDATE MM ) )+ + / );
end;
/
PL/SQL 过程已成功完成
运行JOB
SQL> begin
dbms_job run(:job );
end;
/
PL/SQL 过程已成功完成
cha138/Article/program/Oracle/201311/17886相关参考
Oracle数据库中如何根据时间来执行JOB 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问题
Oracle作业job没有自动调度起来 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracl
Oracle作业(JOB)更新next 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要:本文
OracleJOB用法小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一设置初始化参数job
Oracle数据库定时器Job 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 写法 decla
解析Oracle查询和删除JOB的SQL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对
Oracle数据库定时Jobs作业的使用方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Or
现象 在oracle的工作队列里面执行存储过程执行出错导致队列死掉了我使用remove把作业从工作队列里面去除掉重新修改过程可是编译的时候死掉了根据以往的经验是因为过程正在执行的时候不能编译的原
如何在51job上发布招聘信息先在“企业报务”上申请一个企业用户,然后登录,里面有相关招聘发布的板块,也可以联系51JOB的客服帮助怎么在51job上发布招聘信息到工商去注册,然后51上认证企业,就可
如何才能解决JOB的Interval输入参数过长 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文