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

ORA-01791 Pl-SQL-Fehler

Wenn Sie eine Oracle-Fehlermeldung erhalten, die Sie nicht verstehen, sollten Sie zuerst die Bedeutung nachschlagen. Eine Möglichkeit ist einfach, es zu googeln. In diesem Fall finden Sie die vollständige Beschreibung in Oracle9i Database Error Nachrichten ist:

(Seltsamerweise ist diese Fehlermeldung nicht in den 10G- oder 11G-Handbüchern dokumentiert, obwohl sie immer noch gemeldet wird!)

Dies stimmt mit der von Ihnen geschriebenen Anweisung überein, bei der es sich um eine SELECT DISTINCT-Abfrage handelt, bei der Sie versuchen, die Ergebnisse nach einer Spalte zu ordnen, die Sie nicht ausgewählt haben.

Wenn Sie darüber nachdenken, ergibt das, wonach Sie fragen, keinen Sinn:Wenn Sie DISTINCT-Werte auswählen, die sam.stoptime (zum Beispiel) nicht enthalten, konsolidieren Sie möglicherweise viele Zeilen mit unterschiedlichen Werten für sam.stoptime, also welche die Bestellung regeln?

Wie Noels Antwort zeigt, gibt es sowieso keinen Grund, eine ORDER BY-Klausel in diesem Code zu haben, also besteht die Lösung einfach darin, sie zu entfernen.