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

cx_Oracle:मैं प्रत्येक पंक्ति को एक शब्दकोश के रूप में कैसे प्राप्त कर सकता हूं?

आप कर्सर की rowfactory . को ओवरराइड कर सकते हैं तरीका। हर बार जब आप क्वेरी निष्पादित करेंगे तो आपको ऐसा करने की आवश्यकता होगी।

यहां मानक क्वेरी, एक टपल के परिणाम दिए गए हैं।

curs.execute('select * from foo')
curs.fetchone()
    (33, 'blue')

नामित टपल लौटाना:

def makeNamedTupleFactory(cursor):
    columnNames = [d[0].lower() for d in cursor.description]
    import collections
    Row = collections.namedtuple('Row', columnNames)
    return Row

curs.rowfactory = makeNamedTupleFactory(curs)
curs.fetchone()
    Row(x=33, y='blue')

एक शब्दकोश लौटाना:

def makeDictFactory(cursor):
    columnNames = [d[0] for d in cursor.description]
    def createRow(*args):
        return dict(zip(columnNames, args))
    return createRow

curs.rowfactory = makeDictFactory(curs)
curs.fetchone()
    {'Y': 'brown', 'X': 1}

Amaury Forgeot d'Arc को श्रेय:http://sourceforge.net/p/cx-oracle/mailman/message/27145597



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle के लिए MyBatis बैच इन्सर्ट/अपडेट करें

  2. लिनक्स पर SQL सर्वर 2016

  3. सीआरएस 11.2.0

  4. SQLcl और SQL* Plus (Oracle) में "X Rows Selected" को कैसे निकालें

  5. ओरेकल जेडीबीसी में तैयार स्टेटमेंट और सेटटाइमस्टैम्प