如果我通过 dbms_job.submit 提交作业并提交,那么它会一直运行直到完成。我可以在 dba_jobs 视图上查看多长时间?是什么决定了这个时间?
问问题
393 次
1 回答
0
正如@Kaushik 所说,该DBMS_JOB
包已被DBMS_SCHEDULER
包源取代。它们具有作业名称而不是数字、适当的时间调度程序语言以及许多监视执行的视图等。
该DBMS_SCHEDULER.CREATE_JOB
过程甚至为您的问题提供了一个专用参数,称为auto_drop
:
此标志 if
TRUE
会导致作业在完成后自动删除。资源
但是你要求DBMS_JOB
,我很确定这个工作没有被删除。我刚刚验证了当用户/模式被删除时它被删除了。
作为管理员:
CREATE USER a IDENTIFIED BY a;
GRANT CREATE SESSION, CREATE JOB TO a;
作为用户 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
于 2018-06-29T09:07:04.887 回答