Выберите таблицу базы данных из произвольного номера строки в вызове RFC - PullRequest
0 голосов
/ 23 ноября 2018

Я успешно справляюсь с выбором из таблиц SAP с помощью функционального модуля RFC.Проблема, с которой я сталкиваюсь, заключается в том, чтобы понять наилучшую практику выбора данных из произвольной строки.

Пример: первый вызов RFC извлечет 1000 записей из KNA1 (я войду в пользовательскую прозрачную таблицу, сколько всего записей, гдедо сих пор считается).

Новый вызов RFC должен занять следующие 1000 строк, но начиная со строки 1000 до 2000. Существует ли какой-то элегантный способ справиться с этой ситуацией?

Использование курсора невозможно, поскольку существует 2 последовательныхвызовы с тем же значением курсора RFC будут сброшены.

В противном случае я всегда должен выбирать все и различать запрашиваемые данные, зацикливая итоговые данные, которые будут занимать много времени.

Спасибо за любые предложения!

1 Ответ

0 голосов
/ 23 ноября 2018

Использовать OFFSET

В SELECT с OFFSET :

SELECT * FROM kna1 
  UP TO 1000 ROWS 
  OFFSET (lv_offset)
  WHERE ...
  ORDER BY ...

Если lv_offset содержит 2000, например, он вернет строки 2001-3000 позаказ.

Согласно онлайн-справке , вы должны использовать ORDER BY в SELECT.

...