cx_Oracle (または一般的に Oracle) では、クエリごとにカーソルを割り当てたり、複数のクエリでカーソルを再利用したりできますか。
def getSomeData(curs): # case 1: pass in a cursor, which is generally
curs.execute('select ...') # reused across queries
return curs.fetchall()
def getSomeData(conn): # case 2: pass in a connection,allocate
curs=conn.cursor() # a cursor for this query
curs.execute('select ...')
return curs.fetchall()
もちろん、どちらの方法でも同じデータが返されます。
2 つのアプローチのトレードオフは何ですか? 特に多かれ少なかれ効率的ですか?多くのクエリでカーソルを再利用することの潜在的な落とし穴はありますか?