Ik ben hier aangekomen om een soortgelijke situatie op te lossen, dus het lijkt mij dat dit soort problemen zich nog steeds voordoen.
In mijn geval deed het vermijden van elke optimalisatietransformatie de truc.
Ik heb een NO_QUERY_TRANSFORMATION hint toegepast op de "intoed" SELECT-instructie en de fout is verdwenen.
In het geval van deze vraag zou ik het moeten herschrijven 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