Дата в LOV-запросе

У меня есть отчет с двумя параметрами: PM_DATE и PM_STOCK_ID. Это запрос LOV

SELECT DISTINCT ID FROM STOCK_COUNT

Я хочу отфильтровать параметр PM_STOCK_ID на основе даты, которую пользователь указывает в параметре даты. В предложении where LOV я пытался использовать:

SELECT DISTINCT ID FROM STOCK_COUNT
WHERE TRUNC (SCHEDULE_DATE) = NVL (:PM_DATE, SCHEDULE_DATE)

но это не сработало.

Я также пробовал с диапазоном, используя два параметра: P_SDATE (дата начала) и P_EDATE (дата окончания):

SELECT distinct id  FROM STOCK_COUNT
WHERE 
(TRUNC(SCHEDULE_DATE)) BETWEEN NVL(:P_SDATE, TRUNC(SCHEDULE_DATE)) AND NVL(:P_EDATE, TRUNC(SCHEDULE_DATE))

который получает ошибку:

Parameter name: P_STOCK_ID Unparseable date: ""

Как я должен это делать?


person Imran Hemani    schedule 29.02.2016    source источник
comment
это не работает не очень полезно. Почему вы обрезаете schedule_date слева, но не внутри NVL?   -  person Alex Poole    schedule 29.02.2016
comment
Я отредактировал ответ с новым запросом. Выдает ошибку Имя параметра: P_STOCK_ID Неразборная дата:   -  person Imran Hemani    schedule 29.02.2016
comment
unparseable date - это ошибка преобразования даты Java, поэтому причина не кроется в SQL, который вы разместили здесь, тем более что ни один из этих запросов не использует P_STOCK_ID, параметр, указанный в сообщении об ошибке.   -  person APC    schedule 01.03.2016


Ответы (1)


Просто указав строку :PM_DATE без функции to_date вокруг нее, вы получаете неявное преобразование типов, которое, вероятно, является основной причиной трудности.

person Roger Cornejo    schedule 01.03.2016