Как сказал Майк, итерация по курсору - лучшее решение. Я бы добавил, чтобы повысить производительность, возможно, вы захотите извлечь массив для обработки в блоках, а не по одной записи за раз.
Пример:
EXEC SQL
OPEN order_history;
// Set the length
len = %elem(results);
// Loop through all the results
dow (SqlState = Sql_Success);
EXEC SQL
FETCH FROM order_history FOR :len ROWS INTO :results;
if (SQLER3 <> *zeros);
for i = 1 to SQLER3 by 1;
// Load the output
eval-corr output = results(i);
// Do something
endfor;
endif;
enddo;
НТН,
Джеймс Р. Перкинс