Museli byste přejít přes referenční kurzor a pro každý řádek v něm vytisknout jednotlivá pole. Ve vaší aktualizované verzi musíte načíst kurzor do místních skalárních proměnných, ne do dalšího referenčního kurzoru:
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;
/
Uhodl jsem lsn
je číslo, pokud ne, deklarujte to jako správný typ. Pokud kurzor vrací více než jeden sloupec, budete muset pro každou z nich deklarovat lokální proměnné a všechny je do nich načíst, i když zobrazujete pouze jednu z nich.
Pokud jej chcete pouze zobrazit, můžete k tomu místo toho použít proměnnou vazby (zaškrtnuto v aktuální verzi a zpět na 1.5.0):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
Všimněte si, že variable
příkaz
není v declare
blok; je to příkaz SQL Developer, nikoli příkaz PL/SQL. Stejně jako print
, ačkoli oba jsou zdokumentovány pouze v dokumentech SQL*Plus. A také si všimněte dvojtečky na začátku :result
v bloku, což znamená, že se jedná o proměnnou vazby, nikoli o lokální proměnnou PL/SQL.