0

良い一日。

クエリを実行していて、次のことが発生しています。

ORA-01861 literal does not match format string error.

このクエリを実行したところ、うまくいきました。

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');

エラーは日付部分で発生するため、これは非常に奇妙ですが、日付部分にも同じ構文を書いています。ここでばかげたことを見落としている可能性があり、より新鮮な目が必要です。前もって感謝します!

4

1 に答える 1

3

具体的な問題が何かはわかりませんが、「interface_date」が DATE 型であると仮定すると、日付のクエリでリテラルを使用するのは悪い習慣です。これは、デフォルトの NLS_DATE_FORMAT が日付リテラルと一致することを前提としています。それはあなたを噛むために戻ってきます。日付の制約が移植可能であることを確認するには、次のように変更します。

AND interface_date = to_date('2013-06-30','YYYY-MM-DD')
于 2013-02-27T02:49:39.620 に答える