forbidding you to put it in one query (as Tony recommends), since you want to get one cursor result, you can do it as such (this will switch the cursor to the desired logic → one cursor solution)
DECLARE
PROCEDURE CURSORCHOICE(ITEM IN NUMBER) IS
L_REFCUR SYS_REFCURSOR;
returnNum number;
BEGIN
IF NVL(ITEM,0) > 0 THEN
OPEN L_REFCUR FOR
SELECT ITEM * level FROM DUAL
CONNECT BY LEVEL < ITEM ;
ELSE
OPEN L_REFCUR FOR
SELECT ITEM - LEVEL FROM DUAL
connect by level < -1 * ITEM ;
END IF;
dbms_output.put_line('Results to item ' || item);
loop
fetch l_refcur into returnNum;
exit when l_refcur%notfound;
dbms_output.put_line(returnNum);
end loop;
CLOSE L_REFCUR;
END ;
BEGIN
CURSORCHOICE(5);
CURSORCHOICE(-5);
end ;
/
Results to item 5
5
10
15
20
Results to item -5
-6
-7
-8
-9