Jeg ankom her for at prøve at løse en lignende situation, så det forekommer mig, at denne slags problemer stadig opstår.
I mit tilfælde gjorde det tricket at undgå enhver optimeringstransformation.
Jeg anvendte et NO_QUERY_TRANSFORMATION-tip til "intoed" SELECT-sætning, og fejlen forsvandt.
I tilfælde af dette spørgsmål bør jeg omskrive det som:
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