2013-02-27 2 views
0

Добрый день.ORA-01861 literal не соответствует строке формата в инструкции SELECT

Я уверен, выполнение запроса и сталкиваясь:

ORA-01861 literal does not match format string error. 

я выполнил этот запрос и IT РАБОТАЛ.

SELECT * FROM GCACC_OPERATION_DETAIL WHERE id_notice in (75078741) 
AND id_analytical_center in (100000002) 
AND interface_date = '2013-06-30' 
AND generic_client = 'someGenClient' 
AND document_class = 'DOCCLA0001' 
AND accounting_tag_identifier = 1 
AND generated_actual_acc_doc 
IN (select id_accounting_document 
from gcacc_accounting_document 
where document_status = 'DOCSTA0001'); 

Мой другой запрос написан ниже, который НЕ РАБОТАЕТ.

SELECT * FROM GCACC_OPERATION_DETAIL WHERE id_notice IN (75078741) 
AND id_analytical_center in (100000002) 
AND generic_client = 'someGenClient' 
AND document_class = 'DOCCLA0001' 
AND accounting_tag_identifier = 1 
AND interface_date = '2013-06-30' 
AND ind_pending_process = 1 
AND operation_type 
IN (select cod_develop from gcacc_operation_type where ind_operation = 'B'); 

Это действительно странно, потому что ошибка произошла в части даты, но я пишу тот же синтаксис для части даты. Мне, может быть, не хватает чего-то глупого здесь, и нужны свежие глаза. Заранее спасибо!

ответ

3

Я не знаю, какова конкретная проблема, но при условии, что «interface_date» является типом DATE, неверно использовать литералы в запросе на дату. Это делает предположение, что значение по умолчанию NLS_DATE_FORMAT совпадает с вашим литер-символом даты. Это вернет вас, чтобы укусить вас. Чтобы убедиться, что ограничение по дате переносится, измените на это:

AND interface_date = to_date('2013-06-30','YYYY-MM-DD') 
+0

Приветствую вас за ваш ответ. Я исследовал дальше и получил причину, почему это происходит. Первый запрос не имеет набора результатов, в то время как второй - это то, почему первый запрос не вызывает ошибку. Спасибо за вашу хорошую практику в отношении sql-дат, я это реализую! :) – Oneb

+0

Привет, у вас есть список форматов даты, которые я мог бы предоставить для второго параметра to_date()? Благодарю. :) – Oneb

+1

Вот все опции форматирования оракула - http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm – OldProgrammer

Смежные вопросы