Je suis arrivé ici en essayant de résoudre une situation similaire donc il me semble que ce genre de problème persiste.
Dans mon cas, éviter toute transformation d'optimiseur, a fait l'affaire.
J'ai appliqué un indice NO_QUERY_TRANSFORMATION au "intoed" instruction SELECT et l'erreur a disparu.
Dans le cas de cette question, je devrais la réécrire comme suit :
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