Bạn sẽ cần phải lặp qua con trỏ tham chiếu và đối với mỗi hàng trong đó, hãy in ra các trường riêng lẻ. Trong phiên bản cập nhật của mình, bạn cần tìm nạp con trỏ vào các biến vô hướng cục bộ chứ không phải một con trỏ tham chiếu khác:
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;
/
Tôi đã đoán lsn
là một số, nếu không thì khai báo đó là đúng loại. Nếu con trỏ trả về nhiều hơn một cột thì bạn sẽ cần khai báo các biến cục bộ cho từng cột đó và tìm nạp tất cả chúng vào các cột đó, ngay cả khi bạn chỉ hiển thị một trong số chúng.
Nếu bạn chỉ muốn hiển thị nó thì bạn có thể sử dụng biến liên kết để thực hiện việc này thay thế (đã kiểm tra trong phiên bản hiện tại và quay lại 1.5.0):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
Lưu ý rằng biến variable
lệnh
là không trong declare
khối; nó là một lệnh SQL Developer, không phải là một lệnh PL / SQL. Như vậy là print
, mặc dù cả hai chỉ được ghi lại trong tài liệu SQL * Plus. Và cũng lưu ý dấu hai chấm ở đầu :result
trong khối, cho biết rằng đó là một biến liên kết, không phải là một biến PL / SQL cục bộ.