Похоже, это связано с возможностями базового провайдера, и другие также сталкивались с этим и аналогичными ограничениями размера / строки. Одним из возможных обходных путей может быть реализация итеративного / циклического запроса с некоторой встроенной фильтрацией, чтобы отбросить определенное количество строк. С оракулом, я думаю, что это может быть использование rownum (не очень знаком с оракулом).
Так что-то вроде
--Not tested sql, just winging it syntax-wise
SELECT * FROM OPENQUERY(DWH_LINK, 'SELECT * FROM TABLEA where rownum between 0 AND 500')
SELECT * FROM OPENQUERY(DWH_LINK, 'SELECT * FROM TABLEA where rownum between 500 AND 1000')
SELECT * FROM OPENQUERY(DWH_LINK, 'SELECT * FROM TABLEA where rownum ...')
BOL:
ссылка
Это зависит от возможностей поставщика OLE DB. Хотя запрос может вернуть несколько наборов результатов, OPENQUERY возвращает только первый.