Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Unerwartetes Ergebnis der Multiset-Zuordnung in Oracle SQL

Es ist ein Fehler. Hinzufügen eines /*+ NO_MERGE */ Hinweis auf die zweite Inline-Ansicht im letzten Beispiel wird die erwarteten Ergebnisse erzeugen. Siehe diese SQL-Fiddle zum Beispiel. Unabhängig von der Abfrage sollte dieser Hinweis die Ergebnisse niemals ändern. Es gibt ein paar andere scheinbar nicht zusammenhängende Änderungen, die Sie vornehmen können, um die richtigen Ergebnisse zu erzielen, z. B. das Entfernen einiger Spalten oder das Hinzufügen einer nicht verwendeten ROWNUM in der Mitte.

Oracle schreibt Ihre Abfrage neu, um sie zu optimieren, macht aber etwas falsch. Sie könnten wahrscheinlich weitere Informationen erhalten, indem Sie die Abfrage verfolgen, aber ich bezweifle, dass Sie das Problem wirklich beheben können. Umgehen Sie es vorerst und senden Sie eine Serviceanfrage an Oracle, damit sie einen Fehler erstellen und ihn schließlich beheben können.