Debería recorrer el cursor de referencia y, para cada fila, imprimir los campos individuales. En su versión actualizada, debe buscar el cursor en las variables escalares locales, no en otro cursor de referencia:
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;
/
He adivinado lsn
es un número, si no, entonces declara eso como el tipo correcto. Si el cursor devuelve más de una columna, deberá declarar variables locales para cada una de ellas y buscarlas todas en ellas, incluso si solo está mostrando una de ellas.
Si solo desea mostrarlo, puede usar una variable de vinculación para hacer esto (marcado en la versión actual y de vuelta a 1.5.0):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
Tenga en cuenta que la variable
comando
es no en el declare
bloquear; es un comando de SQL Developer, no un comando PL/SQL. Como está print
, aunque ambos solo están documentados en los documentos de SQL*Plus. Y también tenga en cuenta los dos puntos al comienzo de :result
dentro del bloque, lo que indica que es una variable de vinculación, no una variable PL/SQL local.