Oracle 12c:以日期间隔运行计划的作业

我有以下脚本:

SELECT 
username
ITEM
BUSInesS
ADDED
FROM BUSInesS
WHERE 
BUSInesS IN ('X','Y','Z')
AND ADDED BETWEEN TO_DATE('8/30/2019 00:00:00','MM/DD/YYYY HH24:MI:SS') AND TO_DATE('9/30/2019 11:59:59','MM/DD/YYYY HH24:MI:SS')

日期间隔是正确的,但我希望每个预定作业后更改日期。预定的作业脚本如下:

SYS.DMBS_SCHEDULER.CREATE_JOB
     (
          job_name => 'test',start_date => TO_TIMESTAMP_TZ('2019/10/23 09:00:00.000000 US/Eastern','yyyy/mm/dd hh24:mi:ss.ff tzr'),repeat_interval => 'FREQ=MONTHLY' INTERVAL=1',end_date => NULL

等等

我相信我只需要更改脚本中的日期格式,但是如何确保脚本日期在每次计划的作业运行后提前1个月?预先感谢。

eqiu3333 回答:Oracle 12c:以日期间隔运行计划的作业

我并不完全赞成您的标准:

TO_DATE('8/30/2019 00:00:00','MM/DD/YYYY HH24:MI:SS') AND TO_DATE('9/30/2019 11:59:59','MM/DD/YYYY HH24:MI:SS')

因为它可能是“总是30日”,这意味着2月出现问题,或者可能意味着“上个月的所有时间”。我将假定后者,在这种情况下,您不需要硬编码的日期,则可以通过操纵sysdate来实现,即

ADDED >= add_Months(trunc(sysdate,'MM'),-1) AND
ADDED < trunc(sysdate,'MM')
本文链接:https://www.f2er.com/3100687.html

大家都在问