Dovresti scorrere il cursore di riferimento e per ogni riga in esso, stampare i singoli campi. Nella tua versione aggiornata devi recuperare il cursore nelle variabili scalari locali, non in un altro cursore di riferimento:
set serveroutput on;
declare
result sys_refcursor;
lsn number; -- guessing the data type
begin
emp.emp360_utils.GET_EMPLOYEEs(222334,result);
loop
fetch result into lsn; -- and other columns if needed
exit when result%notfound;
dbms_output.put_line(lsn);
end loop;
end;
/
Ho indovinato lsn
è un numero, in caso contrario dichiararlo come il tipo corretto. Se il cursore restituisce più di una colonna, dovrai dichiarare le variabili locali per ciascuna di esse e inserirle tutte in quelle, anche se ne stai visualizzando solo una.
Se vuoi solo visualizzarlo, puoi invece utilizzare una variabile di collegamento per farlo (selezionato nella versione corrente e torna alla 1.5.0):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
Tieni presente che la variable
comando
è non nella declare
bloccare; è un comando SQL Developer, non un comando PL/SQL. Come è print
, sebbene entrambi siano documentati solo nei documenti SQL*Plus. E nota anche i due punti all'inizio di :result
all'interno del blocco, che indica che si tratta di una variabile di collegamento, non di una variabile PL/SQL locale.