Oracle
 sql >> Base de données >  >> RDS >> Oracle

La requête GROUP BY valide ne fonctionne pas lorsqu'elle est combinée avec INSERT INTO sur Oracle

Je suis arrivé ici en essayant de résoudre une situation similaire donc il me semble que ce genre de problème persiste.

Dans mon cas, éviter toute transformation d'optimiseur, a fait l'affaire.

J'ai appliqué un indice NO_QUERY_TRANSFORMATION au "intoed" instruction SELECT et l'erreur a disparu.

Dans le cas de cette question, je devrais la réécrire comme suit :

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