sql >> データベース >  >> RDS >> Oracle

正しい SQL が間違った結果をもたらすのはいつですか

    できることの 1 つは、Oracle 10g で導入された NO_QUERY_TRANSFORMATION ヒントを適用することです。

    これで目的の結果が得られた場合、クエリの実際の結果を変更するヒントがないため、Oracle のバグに直面していることがわかります。

    同時に、実行計画が満足のいくものではないことを除いて、問題を解決した可能性があります。

    あなたが直面しているバグ (既知のバグかどうかはわかりません) は、Oracle オプティマイザーが、クエリをより適切な実行計画 (マージ ビューなど) に変換するときに、元のクエリの意図を正しく解釈しない可能性があることです。ヒントを使用することで、オプティマイザーにそうしないように指示します。

    この現象は、インライン パフォーマンス ビューを含む複雑なクエリで最もよく見られます。

    現在、この問題を再現するためのコード サンプルはありませんが、現在取り組んでいます。

    更新:これは実際にヒントが意図されていることのようです - 私はこれを見つけました:

    ドキュメント .




    1. エラー:PLS-00428:このselectステートメントでinto句が必要です

    2. PHPを使用して改行付きのテキスト文字列をMySQLデータベースのテキストフィールドに保存するにはどうすればよいですか?

    3. 2つのテーブルの行で条件が一致した場合にIDを返すクエリを作成する

    4. sp_executeが何をしているのかを見る