Ошибка вычисления значения элемента по умолчанию для элемента страницы DDL_MONTH_FROM. Обратитесь к администратору вашего приложения

#sql #oracle #plsql #oracle-apex-20.2 #yearmonth

Вопрос:

Я новичок в Oracle APEX, я использую Oracle APEX версии 20.2, у меня есть элемент страницы с именем P720_DDL_MONTH_FROM.

Мы получаем значение для этого элемента страницы для месяца выбора даты Из приведенного ниже запроса.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Из списка значений атрибута страницы:

  SELECT MON.NAME D, MON.MONTH R
 FROM (SELECT DISTINCT(NAME) "NAME", TO_NUMBER(MONTH) "MONTH" 
 FROM 
 MONTH_YEAR) MON
 ORDER BY MON.MONTH
 

Из значений по умолчанию для элемента страницы:

 DECLARE L_VALUE NUMBER;
BEGIN
SELECT DISTINCT(MONTH) INTO  L_VALUE FROM MONTH_YEAR
WHERE UPPER(NAME) IN (SELECT TO_CHAR(ADD_MONTHS(TO_DATE(SYSDATE), -1), 'MON') FROM DUAL);
RETURN L_VALUE;
END;
 

Я сталкиваюсь с проблемами, связанными с ОТСУТСТВИЕМ ДАННЫХ, при получении значения по умолчанию для вышеуказанного блока sql и plsql, может ли кто-нибудь уточнить, в чем проблемы с вышеуказанным запросом, и позвольте мне из-за некоторых функций, которые могут быть устаревшими в последней версии apex

Спасибо,

Комментарии:

1. Вы можете проверить старую ссылку 9i , в которой описывается значение этого исключения и то, как его можно избежать. К сожалению, они оставили после себя кучу очень приятных и подробных описаний кодов ошибок в документах 9i

Ответ №1:

Если вы получили no_data_found , это означает, что нет строк, удовлетворяющих условиям, которые вы написали.

Для таблицы образцов

 SQL> SELECT * FROM month_year;

     MONTH NAME
---------- --------------------
         4 APR
         6 JUN
 

запрос возвращает что-то (значение для июня) (обратите внимание, что вам не нужен подзапрос; используйте напрямую TO_CHAR(...) ):

 SQL> SELECT DISTINCT month
  2    FROM month_year
  3   WHERE UPPER (name) = TO_CHAR (ADD_MONTHS (TO_DATE (SYSDATE), -1), 'MON');

     MONTH
----------
         6

SQL>
 

Если у вас ничего нет, вам следует проверить содержимое month_year таблицы и посмотреть, что происходит.