Przybyłem tutaj, próbując rozwiązać podobną sytuację, więc wydaje mi się, że tego rodzaju problem nadal się pojawia.
W moim przypadku uniknięcie jakiejkolwiek transformacji optymalizatora załatwiło sprawę.
Zastosowałem wskazówkę NO_QUERY_TRANSFORMATION do „intoed” SELECT i błąd zniknął.
W przypadku tego pytania powinienem przepisać je jako:
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