Você precisaria fazer um loop sobre o cursor ref e para cada linha nele, imprimir os campos individuais. Em sua versão atualizada, você precisa buscar o cursor em variáveis escalares locais, não em outro cursor de referência:
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;
/
Eu adivinhei
lsn
é um número, se não, então declare-o como o tipo correto. Se o cursor retornar mais de uma coluna, você precisará declarar variáveis locais para cada uma delas e buscá-las todas nelas, mesmo que esteja exibindo apenas uma delas. Se você quiser apenas exibi-lo, poderá usar uma variável de ligação para fazer isso (verificado na versão atual e de volta para 1.5.0):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
Observe que a
variable
comando
é não no declare
quadra; é um comando SQL Developer, não um comando PL/SQL. Como está print
, embora ambos estejam documentados apenas nos documentos do SQL*Plus. E também observe os dois pontos no início de :result
dentro do bloco, o que indica que é uma variável de ligação, não uma variável PL/SQL local.