2017-10-05 139 views
0

我是cx_Oracle的新手,我提到了Mastering Oracle+Python, Part 1: Querying Best Practices。现在,在将部分游标对象,该医生说,我引用cx_Oracle中游标的cursor.excute()语句的优先数

“可以定义使用Connection对象的光标()方法光标任意数量的。简单的程序会做得很好,只需一个单一的游标,可以反复使用,但大项目可能需要几个不同的游标。“

现在这个看起来很主观的,可能有人请点多少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

您可以在单个游标上执行尽可能多的cursor.execute()方法调用,而您在每次执行后不需要关闭游标。每个游标都需要一定数量的内存,打开/关闭游标需要一定的计算时间,但这些数量相对较小。在大多数程序中,这不是问题。

希望能回答你的问题!

1

您引用的陈述是正确的,根据需要定义多少,但如果您的代码只需要一个,则使用一个。 请记住,游标正在使用内存,所以越少用越好。 如果您需要同时打开2个游标,请执行此操作,如果其中一个足够,请使用1.

+0

您是否也可以回答这个问题,在创建和关闭语句之间有多少个cursor.execute()都可以。 –

+0

与您需要执行的查询一样多,没有限制或可接受的数字。 –

+0

所以通过声明“简单的程序只用单个游标就可以完成”意味着创建一个游标并执行任意次数然后关闭它。你也可以引荐我一个博客或文档来解释游标。我读了http://cx-oracle.readthedocs.io/en/latest/cursor.html,但是这并不能解释什么是游标的使用,什么connection.cursor和其他相关的东西。 –