Welcome 微信登录

首页 / 数据库 / MySQL / PL/SQL:学会使用DBMS_job包

一、DBMS_JOB包的使用
    DBMS_JOB包用于安排和管理作业队列.通过使用作业,可以使Oracle数据库定期执行特定的任务.
    注意:使用DBMS_JOB管理作业时,必须确保设置初始化参数JOB_QUEUE_PROCESSES(不能为0)
  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,
    instance  IN BINARY_INTEGER DEFAULT any_instance,
    force    IN BOOLEAN DEFAULT FALSE);
    如上所示,job用于指定作业编号;what用于指定作业要执行的操作;next_date用于指定作业的下次运行日期;
 interval用于指定运行作业的时间间隔;no_parse用于指定是否解析与作业相关的过程;instance用于指定哪个
 例程可以运行作业;force用于指定是否强制运行与作业相关的例程,下面以建立用于分析scott.emp表的作业为
 例,说明建立作业的方法.示例如下:
var jobno number
begin
    dbms_job.submit(
    :jobno,
    "dbms_ddl.analyze_object(""table"",""scott"",""emp"",""compute"");",
    sysdate,
    "sysdate+1");
    commit;
end;
/
jobno
---------
21
以上建立了一个作业,作业号为:21,下面可以进行调用此作业号,运行;  2.REMOVE
  该过程用于删除作业队列中的特定作业,语法如下:
    DBMS_JOB.REMOVE (job IN BINARY_INTEGER);
  下面以删除作业21为例,说明使用该过程的方法.如下:
    DBMS_JOB.REMOVE(21);
  3.CHANGE
  该过程用于改变与作业相关的所有信息,包括作业操作,作业运行日期以及运行时间间隔等)语法如下:
    DBMS_JOB.CHANGE(
      job IN BINARY_INTEGER,what IN VARCHAR2,
      next_date IN DATE,interval IN VARCHAR2,
      instance  IN BINARY_INTEGER DEFAULT null,
      force IN BOOLEAN DEFAULT FALSE);
  下面以改变作业的
    exec DBMS_JOB.CHANGE(21,null,null,"SYSDATE+2")
  4.WHAT
  该过程用于改变作业要执行的操作,语法如下:
    DBMS_JOB.WHAT(job IN BINARY_INTEGER,what IN VARCHAR2);
  下面以改变作业21的运行操作为例:
    exec dbms_job.what(21,"dbms_stats.gather_table_stats(""scott"",""EMP"");");
  5,NEXT_DATE
  该过程用于改变作业的下次运行日期.语法如下:
      DBMS_JOB.NEXT_DATE (job IN BINARY_INTEGER,next_date IN DATE);
  下面以改变作业21的下次运行日期为例.
      DBMS_JOB.NEXT_DATE(21,"SYSDATE+1");
  6.INSTANCE
  该过程用于改变运行作业的例程,语法如下:
      DBMS_JOB.INSTANCE (
      job IN BINARY_INTEGER,
      instance IN BINARY_INTEGER,
      force IN BOOLEAN DEFAULT FALSE);
  实例:
      DBMS_JOB.INSTANCE(21,1)
  7.INTERVAL
    该过程用于改变作业的运行时间间隔.语法如下:
      DBMS_JOB.INTERVAL(job in BINARY_INTEGER,interval IN VARCHAR2);
    实例:
    exec  DBMS_JOB.INTERVAL(21,"SYSDATE+1/24/60");
  8.BROKEN
    该过程用于设置作业的中断标记,当中断了作业之后.作业将不会被运行.语法如下:
    DBMS_JOB.BROKEN(
    job IN BINARY_INTEGER,broken IN BOOLEAN,
    next_date IN DATE DEFAULT SYSDATE);
  实例:
    exec DBMS_JOB.BROKEN(21,TRUE,"sysdate+1")
  9.RUN
    该过程用于运行已存在的作业.语法如下
    DBMS_JOB.RUN(job iN BINARY_INTEGER,force IN BOOLEAN dEFAULT FALSE);
    实例:
    DBMS_JOB.RUN(21);
  10.作业使用示例:
    当在ORACLE 数据库中使用作业时,应该首先使用过程SUBMIT来建立作业,然后使用过程RUN来运行作业.
  • 1
  • 2
  • 3
  • 下一页
浅析Oracle 的体系架构及内存分配机制Oracle窗口函数基础知识学习相关资讯      PL/SQL  DBMS_job 
  • PL/SQL之存储过程和函数  (今 14:09)
  • PL/SQL Developer连接本地Oracle   (07月27日)
  • 【PL/SQL系列】Oracle存储过程使用  (04月23日)
  • PL/SQL Developer 使用技巧分享  (09月16日)
  • PL/SQL实现Java中的split()方法的  (07月10日)
  • 从一个案例看PL/SQL代码片的编译与  (03月04日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数