sql >> Base de Datos >  >> RDS >> Oracle

La consulta GROUP BY válida no funciona cuando se combina con INSERT INTO en Oracle

Llegué aquí tratando de solucionar una situación similar por lo que me parece que este tipo de problema sigue apareciendo.

En mi caso, evitar cualquier transformación del optimizador funcionó.

Apliqué una sugerencia NO_QUERY_TRANSFORMATION al "intoed" instrucción SELECT y el error desapareció.

En el caso de esta pregunta, debería reescribirla como:

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