我发现一些相互矛盾的文档,说明cx_Oracle中Cursor.bindarraysize
属性的正确设置是什么。
此读写属性指定一次绑定的行数,在通过setinputsizes()或var()创建变量时使用。默认值为1,表示一次绑定一行。
Documentation for the database以不同的方式描述了绑定数组的大小:
绑定数组的大小等于其包含的行数乘以每行的最大长度。行的最大长度等于最大字段长度的总和加上开销,如下所示:
我倾向于相信前者,因为当您调用Cursor.setinputsizes
时,Python API可能正在执行该计算,但是有人可以确认或否定这种信念吗?
答案 0 :(得分:0)
关于cx_Oracle的工作方式,cx_Oracle文档是正确的。此值指定可以一次绑定的行数。值1适用于所有情况,除非正在调用executemany()。我考虑过删除此值,因为无论如何(使用参数arraysize)创建变量时都可以指定大小,如果不这样做,当它检测到绑定了多行时,它将自动调整变量的大小。