【发布时间】:2019-05-19 21:47:33
【问题描述】:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'delete_partition',
job_type => 'STORED_PROCEDURE',
start_date => '28-APR-08 07.00.00 PM Australia/Sydney',
repeat_interval => 'FREQ=MONTHLY;INTERVAL=1', /* every month */
end_date => '20-NOV-08 07.00.00 PM Australia/Sydney',
comments => 'Running on the 17th of every month');
END;
/
想法是创建一个计划作业,该作业将运行一个包来删除超过 6 个月的分区。
问题是如何在 PL/SQL Developer 中创建另一个包含 dbms_scheduler 作业的包?
非常感谢任何帮助。
【问题讨论】:
-
你为什么要这样做?您将有一个计划的作业,该作业调用一个过程,该过程创建一个作业,该作业调用一个过程......等等。这是作业,过程已安排,它将每个月运行。仅此而已,不是吗?
-
'28-APR-08 07.00.00 PM Australia/Sydney'是一个字符串,而不是DATE或TIMESTAMP。使用TIMESTAMP '2018-04-28 07:00:00 Australia/Sydney'或TO_TIMESTAMP_TZ或简单地使用SYSTIMESTAMP。end_date应该是NULL我假设你不会在特定时间停止工作。 -
好的,让我给你更多关于我想在这里做什么的背景信息。所以目标是清除 20 个分区表中超过 6 个月的日志数据。我现在通过处理一个表来开始这项工作,因此我创建了一个 PurgePackage,其中包含一个过程,该过程处理删除 6 个月大的分区的 for 循环。因此,id 现在想创建一个每天运行 PurgePackage 的计划作业。这就是为什么我说我希望这个 shceduler 单独保存而不是添加到 PurgePackage 本身中。希望这可以帮助您现在了解更多。
标签: oracle plsql plsqldeveloper dbms-scheduler plsql-package