The simplest way from SQL*Plus or SQL Developer is with variable and print:
var deptno number
var result refcursor
exec :deptno := 10;
exec demo_pckg.demo_proc(:deptno, :result);
print result
Or:
var result refcursor
declare
deptno emplyees.department_id%type;;
begin
deptno := 10;
demo_pckg.demo_proc(deptno, :result);
end;
/
print result
The result is treated as a bind variable in the procedure call, so it's prefixed with : there, but it's a native variable to SQL*Plus so it doesn't have one for the print call. You can run either in SQL*Plus, or as a script in SQL Developer, which will show the results in the Script Output window.
You can hard-code the deptno value in the procedure call in either case, of course, rather than delcaring a variable to hold that.
If you're calling this from Java or some other client program you can treat your OUT cursor like any other result set.
You can also declare result as a sys_refcursor in your procedure, rather than declaring your own type.