バグです。 /*+ NO_MERGE */
を追加する 最後の例の2番目のインラインビューへのヒントは、期待される結果を生成します。 このSQLフィドル
を参照してください。 例として。クエリに関係なく、そのヒントによって結果が変わることはありません。一部の列を削除したり、未使用のROWNUM
を追加したりするなど、正しい結果を生成するために行うことができる、一見無関係に見える変更が他にもいくつかあります。 真ん中に。
Oracleはクエリを最適化するように書き直していますが、何か問題があります。クエリをトレースすることで、おそらくもう少し情報を得ることができますが、問題を本当に修正できるとは思えません。今のところそれを回避し、Oracleにサービスリクエストを送信して、バグを作成し、最終的に修正できるようにします。