Похоже, что вы после курсора ссылки.Например,
SQL> variable r refcursor
SQL>
SQL> begin
2 open :r for
3 select empno, ename
4 from scott.emp;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL>
SQL> print r
EMPNO ENAME
---------- ----------
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
14 rows selected.
В тот момент, когда вы открываете этот прекурсор, результат предопределен - так что вам не нужно беспокоиться о блокировках чтения или согласованности данных и т. Д. Например, я открою ссылкукурсор, когда в таблице есть строки, а затем удалите их ... мои напечатанные данные остаются такими же, какими они были во время открытия курсора.
SQL>
SQL>
SQL>
SQL> begin
2 open :r for
3 select empno, ename
4 from scott.emp;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL>
SQL> delete from scott.emp;
14 rows deleted.
SQL>
SQL> print r
EMPNO ENAME
---------- ----------
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
14 rows selected.
SQL>
SQL>
SQL> rollback;
Rollback complete.
SQL>