Oracle
 sql >> Database >  >> RDS >> Oracle

La query GROUP BY valida non funziona se combinata con INSERT INTO su Oracle

Sono arrivato qui cercando di risolvere una situazione simile, quindi mi sembra che questo tipo di problema si presenti ancora.

Nel mio caso, evitando qualsiasi trasformazione dell'ottimizzatore, ha funzionato.

Ho applicato un suggerimento NO_QUERY_TRANSFORMATION a "intoed" SELECT e l'errore è scomparso.

Nel caso di questa domanda, dovrei riscriverla come:

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