Как долго, пока задание, которое закончило выполнение, не будет удалено из dba_jobs?

Если я отправляю задание через dbms_job.submit и фиксирую его, то оно выполняется до завершения. Сколько еще времени у меня будет доступно для просмотра в представлении dba_jobs и что будет определять это время?

1 ответ

Решение

Как сказал @Kaushik, DBMS_JOB пакет был заменен DBMS_SCHEDULER источник пакета. У них есть имена заданий вместо чисел, подходящий язык планировщика времени и множество представлений для мониторинга выполнения и т. Д.

DBMS_SCHEDULER.CREATE_JOB процедура имеет даже выделенный параметр для вашего вопроса под названием auto_drop:

Этот флаг, если TRUE, вызывает автоматическое удаление задания после его завершения. источник

Но вы просили DBMS_JOBи я скорее уверен, что работа не удалена. Я только что проверил, что он удаляется, когда пользователь / схема удаляется.

Как администратор:

CREATE USER a IDENTIFIED BY a;
GRANT CREATE SESSION, CREATE JOB TO a;

Как пользователь:

DECLARE
  my_job number;
BEGIN
  DBMS_JOB.SUBMIT(job => my_job, 
    what => 'BEGIN DBMS_STATS.GATHER_SCHEMA_STATS(NULL); END;',
    next_date=>sysdate+(1/24/60),
    interval=>'sysdate+(1/24/60)');
  COMMIT;
end;
/   

Как администратор:

SELECT * FROM DBA_JOBS WHERE schema_user='A';
JOB LOG_USER LAST_DATE           NEXT_DATE ...
25  A        29.06.2018 13:46:25 29.06.2018 13:47:25

DROP USER A;
User A dropped.

SELECT * FROM DBA_JOBS WHERE schema_user='A';
no rows returned
Другие вопросы по тегам