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

cx_Oracle:मैं परिणाम सेट पर पुनरावृति कैसे करूं?

अंतर्निहित कर्सर पुनरावर्तक का उपयोग करना विहित तरीका है।

curs.execute('select * from people')
for row in curs:
    print row

आप fetchall() . का इस्तेमाल कर सकते हैं सभी पंक्तियों को एक साथ प्राप्त करने के लिए।

for row in curs.fetchall():
    print row

लौटाए गए मानों वाली पायथन सूची बनाने के लिए इसका उपयोग करना सुविधाजनक हो सकता है:

curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]

यह छोटे परिणाम सेट के लिए उपयोगी हो सकता है, लेकिन यदि परिणाम सेट बड़ा है तो इसके बुरे दुष्प्रभाव हो सकते हैं।

  • आपको अपनी क्लाइंट प्रक्रिया में सेट किए गए संपूर्ण परिणाम के वापस आने की प्रतीक्षा करनी होगी।

  • बिल्ट-अप सूची को होल्ड करने के लिए आप अपने क्लाइंट की बहुत सारी मेमोरी खा सकते हैं।

  • पायथन को उस सूची को बनाने और विघटित करने में कुछ समय लग सकता है जिसे आप किसी भी तरह तुरंत त्यागने जा रहे हैं।

यदि आप जानते हैं कि परिणाम सेट में एक ही पंक्ति वापस आ रही है तो आप fetchone() पर कॉल कर सकते हैं एकल पंक्ति प्राप्त करने के लिए।

curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]

अंत में, आप एक बार में एक पंक्ति लाने वाले परिणाम सेट पर लूप कर सकते हैं। सामान्य तौर पर, इटरेटर का उपयोग करने पर ऐसा करने में कोई विशेष लाभ नहीं होता है।

row = curs.fetchone()
while row:
    print row
    row = curs.fetchone()


  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. ORACLE SQL:दो संख्याओं के बीच सभी पूर्णांक प्राप्त करें

  3. Oracle:वर्ष -4713 और +9999 के बीच होना चाहिए, और 0 . नहीं होना चाहिए

  4. स्पार्क त्रुटि - दशमलव परिशुद्धता 39 अधिकतम सटीकता 38 से अधिक है

  5. Ansible . का उपयोग करके विभिन्न ORACLE_HOME और PATH पर्यावरण चर सेट करें