Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

A consulta GROUP BY válida não funciona quando combinada com INSERT INTO no Oracle


Cheguei aqui tentando resolver uma situação parecida então me parece que esse tipo de problema ainda aparece.

No meu caso, evitar qualquer transformação do otimizador funcionou.

Apliquei uma dica NO_QUERY_TRANSFORMATION ao "intoed" instrução SELECT e o erro desapareceu.

No caso desta questão, devo reescrevê-la 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