Моя рекурсивная функция в plsql не работает внутри процедуры - PullRequest
0 голосов
/ 27 августа 2018

Я только что изучил plsql .. Я создал функцию, которая будет возвращать день, который не является рекурсивным выходным (он будет искать следующий день, который не является выходным) из заданного параметра "THEDAY", но он не работает.Интересно, почему это все-таки возвращающийся праздник?

  FUNCTION WEEKDAY(THEDAY IN OUT DATE)
    RETURN DATE
  IS
    count_row number;
    nextday DATE;
    isholiday boolean;   
  BEGIN
    nextday := THEDAY;
    isholiday := false;
    IF (TO_CHAR(TO_DATE(THEDAY),'DY','nls_date_language=american')='SAT') THEN
      nextday := THEDAY + 2;
      isholiday := true;
    ELSIF((TO_CHAR(TO_DATE(THEDAY),'DY','nls_date_language=american')='SUN') ) THEN
      nextday := THEDAY +1;
      isholiday := true;                        
    ELSE
      BEGIN
        SELECT count(*)
        INTO count_row
        FROM TBL_MSTHOLIDAYS
        WHERE trunc(DDAY) = trunc(THEDAY);

        IF count_row <> 0 THEN
          nextday := THEDAY+1;
          isholiday := true;
        END IF;

  END;
    END IF;

    if (isholiday = true) THEN
      RETURN WEEKDAY(nextday);
    ELSE 
      RETURN THEDAY;
    END IF;

  END;

1 Ответ

0 голосов
/ 29 августа 2018

Мой Плохой ...

Поскольку Кара сказал, что функция работает, как предполагалось, я получил неправильный вывод, потому что он вычислен в следующем условии ...

и для параметра OUT я уже удаляю его, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...