Oracle供给了几个包,它们可以用来完成很多使命,从内部进程通信到文件I/O,到在PL/SQL块中静态创立和执行SQL语句。一切这些包由SYS用户所拥有—当Oracle最初拆卸时两个用户中的一个,这些包中最主要的搜罗:
DBMS_Alert 不消轮询就应承使用定名并发出告诫条件旗帜旗帜的进程与函数
DBMS_DDL 应承获取PL/SQL轨范内部一定数量的DDL语句的进程
DBMS_Describe 为存储进程与函数描写API的进程
DBMS_Job 经管BLOBs、CLOBs、NCLOBs与BFILEs的进程与函数
DBMS_Output 应承PL/SQL轨范天生终端输入的进程与函数
DBMS_Pipe 应承数据库会话使用管道通信(通信频道)的进程与函数
DBMS_SQL 在PL/SQL轨范内部执步履态SQL的进程与函数
DBMS_Utility DBMS_Utility
UTL_File 应承PL/SQL轨范读写就事器文件体系上的文本文件的进程与函数
DBMS_Job包的用法
- 搜罗以下子进程:
- Broken()进程。
- change()进程。
- Interval()进程。
- Isubmit()进程。
- Next_Date()进程。
- Remove()进程。
- Run()进程。
- Submit()进程。
- User_Export()进程。
- What()进程。 1、 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参数指示在什么时候此使命将再次运转。此参数缺省值为以后日期和时候。 2、 Change()进程用来改动指定使命的设置。 这个进程有四个参数:job、what 、next_date与interval。 PROCEDURE Change (job IN binary_integer, What IN varchar2, next_date IN date, interval IN varchar2) 此job参数是一个整数值,它唯一标识此使命。 What参数是由此使命运转的一块PL/SQL代码块。 next_date参数指示何时此使命将被执行。 interval参数指示一个使命重执行的频度。 3、 Interval()进程用来显式地设置重执行一个使命之间的时候阻遏数。 这个进程有两个参数:job与interval。 PROCEDURE Interval (job IN binary_integer, Interval IN varchar2) job参数标识一个特定的使命。interval参数指示一个使命重执行的频度。 4、 ISubmit()进程用来用特定的使命号提交一个使命。 这个进程有五个参数:job、what、next_date、interval与no_parse。 PROCEDURE ISubmit (job IN binary_ineger, What IN varchar2, next_date IN date, interval IN varchar2, no_parse IN booean:=FALSE) 这个进程与Submit()进程的唯一区别在于此job参数作为IN型参数传递且搜罗一个 由启迪者供给的使命号。要是供给的使命号已被使用,将产生发火一个错误。 5、 Next_Date()进程用来显式地设定一个使命的执行时候。这个进程接收两个参数:job与next_date。 PROCEDURE Next_Date(job IN binary_ineger, next_date IN date) job标识一个已存在的使命。next_date参数指示了此使命应被执行的日期与时候。 6、 Remove()进程来删除一个已方案运转的使命。这个进程接收一个参数: PROCEDURE Remove(job IN binary_ineger); job参数唯一地标识一个使命。这个参数的值是由为此使命调用Submit()进程前去的job参数的值。 已正在运转的使命不能由调用历轨范删除。 7、 Run()进程用来立即执行一个指定的使命。这个进程只接收一个参数: PROCEDURE Run(job IN binary_ineger) job参数标识将被立即执行的使命。 8、 使用Submit()进程,使命被正常中间案好。 这个进程有五个参数:job、what、next_date、interval与no_parse。 PROCEDURE Submit ( job OUT binary_ineger, What IN varchar2, next_date IN date, interval IN varchar2, no_parse IN booean:=FALSE) job参数是由Submit()进程前去的binary_ineger。这个值用来唯一标识一个使命。 what参数是将被执行的PL/SQL代码块。 next_date参数指识何时将运转这个使命。 interval参数何时这个使命将被重执行。 no_parse参数指示此使命在提交时或执行时能否应举行语法解析——TRUE 指示此PL/SQL代码在它第一次执行时应举行语法解析, 而FALSE指示本PL/SQL代码应立即举行语法解析。 9、 User_Export()进程前去一个命令,此命令用来陈设一个存在的使命以便此使命能从新提交。 此轨范有两个参数:job与my_call。 PROCEDURE User_Export(job IN binary_ineger, my_call IN OUT varchar2) job参数标识一个陈设了的使命。my_call参数搜罗在它确以后形状从新提交此使命所需求 的正文。 10、 What()进程答理在使命执行时从新设置此正在运转的命令。这个进程接收两个参数:job与what。 PROCEDURE What (job IN binary_ineger, What IN OUT varchar2) job参数标识一个存在的使命。what参数指示将被执行的新的PL/SQL代码。
- 一个俭朴例子:
- 创立测试表
- 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 进程已成功完成。
版权声明:
原创作品,应承转载,转载时请务必以超链接办法标明文章 原始出处 、作者信息和本声明。不然将清查司法责任。