我是cx_Oracle的新手,我提到了Mastering Oracle+Python, Part 1: Querying Best Practices 。现在,在 Cursor Objects 部分,doc说,我引用
“你可以使用Connection对象的cursor()方法定义任意数量的游标。简单的程序只需一个游标就可以完成,可以反复使用。但是较大的项目可能需要几个不同的游标“。
现在这看起来很主观,有人可以用一个游标指出多少cursor.execute()语句是否正常,应该是每个游标 连接和关闭,以使每个执行语句更安全,就像这样。
cursor = connection.cursor()
cursor.execute('some query - insert,delete,upate,select')
#result = cursor.fetchall() # or some other way to obtain result if required
cursor.close()
或类似于每个函数的游标,并重用该游标来执行该特定函数中的语句。
查询类型是否也会影响选择。
答案 0 :(得分:1)
您引用的声明是正确的,根据您的需要定义,但如果您的代码只需要一个,那么请使用一个。 请记住,光标正在使用内存,因此使用的越少越好。 如果您需要同时打开2个游标,那么请执行此操作,如果一个游标已足够,则使用1。
答案 1 :(得分:0)
您可以在单个游标上执行尽可能多的cursor.execute()方法调用,并且每次执行后都不需要关闭游标。每个游标都需要一定的内存量,打开/关闭游标需要一定的计算时间,但这些数量相对较少。在大多数程序中,这不是问题。
希望能回答你的问题!