Как указать параметр значения даты в Toad для запроса Oracle, используя окно параметров запроса?

В следующем жестко закодированном запросе у меня есть два параметра varchar2 и два параметра даты.

select * from myTable
where title = 'abc'
and start_date = TO_DATE('04/05/2016', 'mm/dd/yyyy')
and end_date = TO_DATE('04/06/2016', 'mm/dd/yyyy')
and description = 't';

Этот запрос возвращает две строки.

Когда я запускаю тот же запрос, используя окно ввода значения параметра запроса Toad

select * from myTable
where title = :ttitle 
and start_date = :startdate
and end_date = :enddate 
and description = :descrip;

Я ввожу abc для параметра ttitle, 2016/04/05 для даты начала, 2016/04/06 для даты окончания и t для описания. Затем я получаю следующую ошибку для параметров даты

ORA-01861: литерал не соответствует строке формата

Я пробовал другие варианты для даты «05.04.2016», я пробовал весь TO_DATE('05.04.2016'....), ... и другие форматы, но продолжаю получать ошибки. Примечание: если я закомментирую параметры даты и просто использую параметры varchar2, запрос запускается, когда я ввожу abc и t. Моя проблема связана с параметрами даты. Как правильно вводить значения даты в окне параметров для Toad?


person Rich P    schedule 08.04.2016    source источник


Ответы (1)


Попробуйте 'DD-MON-YYYY' для формата даты, т.е. '08-APR-2016'. Я считаю, что он должен соответствовать NLS_DATE_FORMAT, установленному в вашем сеансе:

Чтобы увидеть NLS_DATE_FORMAT:

SELECT value
FROM   nls_session_parameters
WHERE  parameter = 'NLS_DATE_FORMAT'

Вы также можете изменить формат даты для своего сеанса, чтобы дата, введенная таким образом, считалась датой, и TO_DATE не требовалось.

ALTER SESSION SET nls_date_format = 'dd/mm/yyyy'
person Gary_W    schedule 08.04.2016