【问题标题】:Using sysdate in IF statement to avoid every top of the hour在 IF 语句中使用 sysdate 来避免每个小时的顶部
【发布时间】:2018-11-09 14:00:52
【问题描述】:

我正在尝试在我的程序中编写一个 IF 语句,以避免我的程序在整点运行。由于某种原因,我正在使用的作业调度程序无法灵活地避免在整点运行。有人有什么东西可以分享吗?因此,例如,如果它是 8:00,我希望 IF 语句停止执行该过程.......但是如果它是 8:15,那么没有问题继续运行。

【问题讨论】:

  • 到目前为止您尝试了哪些方法,您在哪里遇到了问题?
  • DBMS_SCHEDULER当然有这个能力。

标签: sql oracle date stored-procedures plsql


【解决方案1】:

你可以像这样提取分钟:

SELECT EXTRACT(minute FROM systimestamp) FROM DUAL;

或者,更传统的

SELECT TO_CHAR(sysdate,'MI') FROM DUAL;

您的程序将如下所示:

CREATE OR REPLACE PROCEDURE myproc IS
BEGIN
  IF EXTRACT(minute FROM systimestamp) > 0 THEN
    NULL; 
    -- here goes your code
  END IF;
END myproc;
/

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多