Heim > Datenbank > MySQL-Tutorial > PL/SQL:学会使用DBMS_job包

PL/SQL:学会使用DBMS_job包

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 17:25:51
Original
906 Leute haben es durchsucht

DBMS_JOB包用于安排和管理作业队列.通过使用作业,可以使ORACLE数据库定期执行特定的任务. 注意:使用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来运行作业.

linux

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
sql-Datei
Aus 1970-01-01 08:00:00
0
0
0
php - Overhead von Prepare vs. SQL?
Aus 1970-01-01 08:00:00
0
0
0
SQL-Anweisung drucken
Aus 1970-01-01 08:00:00
0
0
0
Einfügen von CTE
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage