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

Eine gültige GROUP BY-Abfrage funktioniert nicht, wenn sie mit INSERT INTO auf Oracle kombiniert wird

Ich bin hierher gekommen, um eine ähnliche Situation zu lösen, also scheint mir, dass diese Art von Problem immer noch auftritt.

In meinem Fall hat es ausgereicht, jede Optimierungstransformation zu vermeiden.

Ich habe einen NO_QUERY_TRANSFORMATION-Hinweis auf "intoed" angewendet SELECT-Anweisung und der Fehler verschwand.

Im Fall dieser Frage sollte ich es umschreiben als:

INSERT INTO MasterRecords
  (BatchRecordRecordID, SourceID, BatchID)
SELECT /*+NO_QUERY_TRANSFORMATION*/ RecordID, SourceID, BatchID
FROM (
    SELECT RecordID, BatchID, 101 AS SourceID
    FROM BatchRecords
    WHERE BatchID = 150
    GROUP BY RecordID, BatchID
) BR