Q:

ORACLE call stored procedure inside package with cursor type

I am really struggling with calling stored procedure below. I am using oracle sql developer, version 19.2. What I have tried is this answer but I am receiving errors (same errors as described in comments). Why is it so hard to call such a simple stored procedure from sql developer?
create or replace PACKAGE BODY "PCK_FIRST" IS
      PROCEDURE GET_GETNAMES(
        USER_ID IN NUMBER,    
        M_RESULT OUT TYPES.CURSOR_TYPE
      ) IS
      BEGIN
        OPEN M_RESULT FOR
        SELECT * FROM PER_NAMES WHERE ID = USER_ID;
      END;

END PCK_FIRST;

A:

Declare a variable with the type TYPES.CURSOR_VALUE and then use that as the output from the cursor:
DECLARE
  cur    TYPES.CURSOR_TYPE;
  p_id   PER_NAMES.ID%TYPE;
  p_name PER_NAMES.NAME%TYPE;
BEGIN
  PCK_FIRST.get_getnames( 1, cur );
  LOOP
    FETCH cur INTO p_id, p_name;
    EXIT WHEN cur%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE( p_id || ': ' || p_name );
  END LOOP;
  CLOSE cur;
END;
/

db<>fiddle here

If you want to call it in SQL Developer then:
VARIABLE cur REFCURSOR;
EXECUTE pck_first.get_getnames(1, :cur);
PRINT cur;

And run it as a script using F5 (rather than as individual statements using Ctrl-Enter).

