潇潇雨歌 发表于 2023-9-14 12:24:45

cx_Oracle:如何迭代结果集?

有几种方法可以迭代结果集。两者的权衡是什么?
                                                               
    解决方案:                                                               
                                                                标准化的方法是使用内置的游标迭代器。
curs.execute('select * from people')for row in curs:    print row您可以使用fetchall()一次获得所有行。
for row in curs.fetchall():    print row使用此命令创建包含返回值的返回值Python列表可能非常方便:
curs.execute('select first_name from people')names = for row in curs.fetchall()]这可能对较小的结果集有用,但如果结果集很大,可能会产生不良副作用。
您必须等待整个结果集返回客户流程。
您可能会吞噬客户端中的大量内存来保存内置列表。
Python构建和解构你将立即丢弃的列表可能需要一些时间。
如果知道结果集中返回一行,可以调用fetchone()获取银行。
curs.execute('select max(x) from t')maxValue = curs.fetchone()最后,你可以通过结果集一次获得一行。通常,这样做没有什么特别的优势,而不是使用迭代器。
row = curs.fetchone()while row:    print row    row = curs.fetchone()
页: [1]
查看完整版本: cx_Oracle:如何迭代结果集?