#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
таблицы и посмотреть, что происходит.