Oracle REF Курсоры - PullRequest
       7

Oracle REF Курсоры

0 голосов
/ 22 мая 2018

Есть ли способ выполнить какую-либо обработку после открытия курсора ref для приложения для чтения?

Итак, у меня есть курсор ref: OPEN p_data FOR v_select.Приложение читает из этого.После этого моя процедура может продолжить обработку?Или это сделано?

Пожалуйста, сообщите

1 Ответ

0 голосов
/ 22 мая 2018

После того, как курсор открыт, вы можете FETCH из него, пока не достигнете, пока больше не будут получены данные.В этот момент или раньше, если вы закончите обработку данных, вы можете CLOSE курсор.

declare
  p_data sys_refcursor;
  v_select varchar2(1000) := 'select * from dual';
  type data_rec is record (dummy dual.dummy%type);
  type data_tab is table of data_rec; 
  l_data data_tab;
begin
  OPEN p_data FOR v_select;
  LOOP
    FETCH p_data BULK COLLECT INTO l_data LIMIT 100;
    FOR r in 1 .. l_data.count LOOP
      dbms_output.put_line(l_data(r).dummy);
    END LOOP;
    EXIT WHEN p_data%notfound;
  END LOOP;
  CLOSE p_data;
end;
...