Du skal gå over ref-markøren og udskrive de enkelte felter for hver række i den. I din opdaterede version skal du hente markøren ind i lokale skalarvariabler, ikke en anden ref-markør:
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;
/
Jeg har gættet lsn
er et tal, hvis ikke, så erklær det som den rigtige type. Hvis markøren returnerer mere end én kolonne, bliver du nødt til at erklære lokale variabler for hver af dem og hente dem alle ind i dem, selvom du kun viser én af dem.
Hvis du bare vil vise det, kan du bruge en bind-variabel til at gøre dette i stedet (markeret i den aktuelle version og tilbage til 1.5.0):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
Bemærk, at variable
kommando
er ikke i declare
blok; det er en SQL-udviklerkommando, ikke en PL/SQL-kommando. Som er print
, selvom begge kun er dokumenteret i SQL*Plus-dokumenterne. Og bemærk også kolon i starten af :result
inden for blokken, hvilket indikerer, at det er en bindingsvariabel, ikke en lokal PL/SQL-variabel.