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