आपको रेफ कर्सर पर लूप करना होगा और इसमें प्रत्येक पंक्ति के लिए, अलग-अलग फ़ील्ड प्रिंट करना होगा। अपने अपडेट किए गए संस्करण में आपको कर्सर को स्थानीय स्केलर वेरिएबल में लाने की जरूरत है, न कि किसी अन्य रेफ कर्सर में:
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;
/
मैंने अनुमान लगाया है lsn
एक संख्या है, यदि नहीं तो सही प्रकार के रूप में घोषित करें। यदि कर्सर एक से अधिक कॉलम लौटाता है तो आपको उनमें से प्रत्येक के लिए स्थानीय चर घोषित करने और उन सभी को लाने की आवश्यकता होगी, भले ही आप उनमें से केवल एक को प्रदर्शित कर रहे हों।
यदि आप इसे केवल प्रदर्शित करना चाहते हैं तो आप इसके बजाय ऐसा करने के लिए एक बाइंड वैरिएबल का उपयोग कर सकते हैं (वर्तमान संस्करण में चेक किया गया और 1.5.0 पर वापस):
variable result refcursor
begin
emp.emp360_utils.GET_EMPLOYEEs(222334, :result);
end;
/
print result
ध्यान दें कि variable
आदेश
है नहीं declare
. में खंड मैथा; यह एक SQL डेवलपर कमांड है, PL/SQL कमांड नहीं। जैसा कि print
है
, हालांकि दोनों केवल SQL*Plus डॉक्स में प्रलेखित हैं। और :result
. की शुरुआत में कोलन पर भी ध्यान दें ब्लॉक के भीतर, जो इंगित करता है कि यह एक बाइंड वैरिएबल है, न कि स्थानीय PL/SQL वैरिएबल।