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代码。

解决方案 »

  1.   

    PL/SQL Developer Test script 3.013
    -- Created on 2002-7-2 by ADMINISTRATOR 
    declare 
      -- Local variables here
      v_jobnum  number;
    begin
      -- Test statements here
      dbms_job.submit(v_jobnum,'sp_delete_czrz;',sysdate,'last_day(sysdate)+1');
      --dbms_output.put_line('job '||v_jobnum||' has been submitted.');
      --dbms_job.run(v_jobnum,TRUE);
      --dbms_job.run(29,TRUE);
    --DBMS_JOB.REMOVE(6);
      COMMIT;
    end;
      

  2.   

    在初始化参数中加job_queue_processes = ?;?是一个大于0得数  begin
       dbms_job.submit(:jobnum,'过程名',sysdate,'sysdate+1/1440');
      end;
      

  3.   

    在8I中,有个replication manager工具,
    我进入它点击“本地作业”,
    创建一个本地作业,
    设置时间,间隔时间段
    写它的sql语法,但是不会写我是这样写的:
    declare
    vn_ret number;
    vs_msg varchar2;
    begin
    p_upd_price(:vn_ret,:vs_msg);
    End;问题是编译通过,但是不能执行!
      

  4.   

    you can use dbms_job as
    dbms_job.submit(:jobno,'dbms_ddl.analyze_object(''table'',''dquon'',''accounts'',''estimate'',null,50');
    commit;
    this job create on the accounts table and run every 24 hours
      

  5.   

    1 创建测试表  
    SQL>  create  table  a(a  date);  
    表已创建。  
     
    2 创建一个自定义过程  
    SQL>  create  or  replace  procedure  test  as  
       2    begin  
       3    insert  into  a  values(sysdate);  
       4    end;  
       5    /  
    过程已创建。  3 创建JOB  
    SQL>  variable  job1  number;  
    SQL>  begin  
       2    dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  
       3    end;  
       4    /  
     
    PL/SQL  过程已成功完成。  
     
    4 运行JOB  
    SQL>  begin  
       2    dbms_job.run(:job1);  
       3    end;  
       4    /  5.JOB中最后一个时间字符参数
    every day :            TRUNC(SYSDATE+1)
    every sunday :         NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY')  
    every day at 6am:      TRUNC(SYSDATE+1)+6/24
    every half hour :      SYSDATE+30/1440