私はここで奇妙な振る舞いをしています。誰かが私にそれを説明してくれることを願っています.
クエリに 2 つのフィールドがあります。1 つは、 を使用して日付に変換される数値フィールドですto_date('01/01/1960', 'mm/dd/yyyy') + somethingorother
。もう 1 つは、少なくとも 1 つの日付以外の値を含むテキスト フィールドで、 で日付に変換されますto_date(textField, 'mm/dd/rrrr')
。クエリを実行すると、正常に実行されます。ただし、クエリを で囲むselect * from ( ) where field1 > field2
と、「ORA-01861: リテラルがフォーマット文字列と一致しません」というエラーが発生します。テキスト フィールドを引き戻すサブクエリの where 句で既知の日付以外の値を除外しようとしても、役に立ちません。
コードなしでこれを理解することはほとんど不可能であることはわかっていますが、フィルターなしで機能するのに、フィルターを追加すると爆発する理由を誰かが説明できるかどうか疑問に思っています。ありがとう。