暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 一旦作业完成,DBMS_SCHEDULER程序不会自动丢弃

askTom 2017-03-23
244

问题描述

嗨,

当作业成功完成时,使用DBMS调度程序创建的程序是否会自动丢弃?

提前谢谢!!


专家解答

不,他们不是。程序是数据库中的永久对象,例如


SQL> create or replace
  2  procedure my_proc is
  3  begin
  4    null;
  5  end;
  6  /

Procedure created.

SQL>
SQL> begin
  2    dbms_scheduler.create_program (
  3      program_name   => 'MY_PROGRAM',
  4      program_type   => 'PLSQL_BLOCK',
  5      program_action => 'begin my_proc; end;',
  6      enabled        => true);
  7  end;
  8  /

PL/SQL procedure successfully completed.

SQL>
SQL> begin
  2    DBMS_SCHEDULER.create_job (
  3      job_name      => 'MY_JOB',
  4      program_name  => 'MY_PROGRAM',
  5      start_date      => SYSTIMESTAMP,
  6      enabled       => TRUE);
  7  end;
  8  /

PL/SQL procedure successfully completed.

SQL> select job_name
  2  from dba_scheduler_jobs
  3  where owner = user;

no rows selected  -- ie, it has been run

SQL>
SQL> select program_name
  2  from dba_scheduler_programs
  3  where owner = user;

PROGRAM_NAME
--------------------------------------------------------------------------------------------------------------------------------
MY_PROGRAM

1 row selected.

SQL>
SQL>


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论