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

cx_oracle में कर्सर चर से संग्रहीत कार्यविधि लौटाएं

एक प्रक्रिया के लिए कॉल एक अनुक्रम को पैरामीटर के रूप में लेता है, और एक अनुक्रम भी देता है।

l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
print(type(l_test))
#>>> <class 'list'>

तो आप लौटाए गए कर्सर को अनुक्रमणिका द्वारा एक्सेस कर सकते हैं:

ret_cursor = self.__cursor.callproc("prc_get_some_data",[l_cur])[0]

या

l_test = self.__cursor.callproc("prc_get_some_data",[l_cur])
ret_cursor = l_test[0]

फिर आप लूप के लिए परिणाम को प्रिंट कर सकते हैं

for line in ret_cursor:
    print line

या print ret_cursor.fetchall() . के साथ , या pprint . के साथ यदि आवश्यक हो तो उपकरण।

दस्तावेज़ीकरण में आपने लिंक किया है, वापसी मान सीधे l_query . पर अनपैक किया गया है और l_emp :

l_query, l_emp = self.__cursor.callproc("PKG_HR.FIND_EMPLOYEES", [p_query, l_cur])

वैसे, आपको मुख्य कर्सर के समान विधि के साथ, अंत में लौटाए गए कर्सर को बंद करने की आवश्यकता हो सकती है:ret_cursor.close() . अन्यथा यह कनेक्शन बंद नहीं किया जा सकता . के बारे में एक अपवाद फेंक सकता है ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC में खुले कनेक्शन के लिए प्रोग्रामेटिक रूप से जाँच कर रहा है

  2. ODP.NET का उपयोग करके Oracle बल्क अपडेट

  3. एक ट्रिगर का उपयोग किए बिना Oracle में ऑटो-इन्क्रीमेंट

  4. जेएमटर में जेडीबीसी कनेक्शन का उपयोग करने पर सर्वरआउट कैसे सेट करें?

  5. डेटाबेस केस असंवेदनशील सूचकांक?