c_curs
является переменной связывания и не является переменной, определенной в PL / SQL. Чтобы использовать его в блоке PL / SQL, вам необходимо поставить перед ним двоеточие :
, чтобы указать, что вы используете переменную связывания (точно так же, как вы делали это в операторе EXECUTE
):
set serveroutput on
VAR c_curs refcursor;
EXECUTE pck_prov.get_value_type_list(1, :c_curs);
BEGIN
FOR record_test IN :c_curs LOOP
dbms_output.put_line(record_test.id);
END LOOP;
END;