1

私は何度もこのエラーに悩まされてきましたが、回避する方法がなく、それを取り除く必要があることを知っています.

クエリを実行するSQL Navigator 6.1 XPert Editionと、次のようにスローされることがあります。

ORA-01843: Not a valid month

しかし、同じデータベースで同じクエリを実行しても、他のアプリケーション (つまりAqua Data Studio) では正常に動作します。それは孤立したケースにすぎません。

それはいくつかの設定の問題かもしれませんか?

編集:このクエリにはその問題があります:

            select
                quantity dias_a_vencer
                , estab
                , initcap (planejador) planejador
                , atributo2 fabrica
                , mrp.item montagem
                , initcap (descricao) des_montagem
                , mrp.nro_docmto num_of
                , initcap (mrp.fornecedor) cliente
                , mrp.project_number projeto
                , initcap (comprador) processista
                , trunc (mrp.data_inicio) data_inicio
            from etlt_mrp_exceptions mrp
            where 
                mrp.compile_designator = 'ENGI'
                and mrp.dt_coleta > sysdate - 50
                and estab = '179'        -- PARAMETRO ESTAB FILTRO
                and atributo2 = '11'   -- PARAMETRO FABRICA FILTRO
                and nvl (mrp.quantity, 0) > 0
                and dt_coleta = '05/12/2011'                         -- parametro do grafico acima
                and initcap (planejador) = 'Maria Cristina Da Cruz Costa'        -- parametro do grafico acima
            order by quantity
            , des_montagem
4

3 に答える 3

3

すべての環境でクエリをフェイルセーフにするには、次の行を変更する必要があります。

and dt_coleta = '05/12/2011'  

and dt_coleta = to_date('05/12/2011', 'DD/MM/YYYY')

5月12日ではなく、12月5日を意味していると仮定します。

ところで:どのデータ型が列estabatributo2です。それらが数字の場合は、パラメーターを囲む一重引用符を削除する必要があります。これは、たとえばこれらの列でのインデックスの使用を防ぐ、もう1つの「暗黙的な」データ変換です。

于 2011-12-06T14:39:59.793 に答える
1

常に日付形式を指定し、それを想定したり、デフォルトの形式を使用したりしないでください。例えば:

insert into mytable (mydate) values (to_date('02/28/2011', 'MM/DD/YYYY'));
于 2011-12-06T13:29:26.180 に答える