Предполагая, что вам действительно нужна функция (которая подразумевает, что вы хотите вернуть значение), а не процедуру (которая не возвращает значение), и предполагая, что ваш курсор действительно выбирает каждый столбец из одной таблицы, вы можете объявить функцию, которая берет на якорь %ROWTYPE
SQL> create function get_empno( p_rec in emp%rowtype )
2 return number
3 is
4 begin
5 return p_rec.empno;
6 end;
7 /
Function created.
и затем вызовите эту функцию из вашей процедуры
SQL> declare
2 l_empno emp.empno%type;
3 begin
4 for i in (select * from emp)
5 loop
6 l_empno := get_empno( i );
7 dbms_output.put_line( l_empno );
8 end loop;
9 end;
10 /
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
PL/SQL procedure successfully completed.