Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL डेवलपर 1.5 में Oracle Sys_refcursor प्रिंट करना

आपको रेफ कर्सर पर लूप करना होगा और इसमें प्रत्येक पंक्ति के लिए, अलग-अलग फ़ील्ड प्रिंट करना होगा। अपने अपडेट किए गए संस्करण में आपको कर्सर को स्थानीय स्केलर वेरिएबल में लाने की जरूरत है, न कि किसी अन्य रेफ कर्सर में:

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 वैरिएबल।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा क्लास को ऑरैकल ट्रिगर से कैसे कॉल करें?

  2. ORA-1114 रनिंग डाटापैच

  3. Oracle डेटाबेस में नेटिव डायनेमिक SQL का परिचय

  4. ORA-01882:एंटिटी फ्रेमवर्क में टाइमज़ोन क्षेत्र नहीं मिला

  5. पुनरावर्ती सबक्वेरी फैक्टरिंग के साथ साइकिल का पता लगाना