Правильная настройка для cx_Oracle.Cursor.bindarraysize - PullRequest
0 голосов
/ 25 сентября 2018

Я нахожу противоречивую документацию о том, что правильный параметр для атрибута Cursor.bindarraysize в cx_Oracle.

cx-oracle.readthedocs говорит

Этот атрибут чтения-записи указывает количество строк для привязки за раз и используется при создании переменных с помощью setinputsizes () или var ().По умолчанию используется значение 1, что означает привязку одной строки за раз.

Документация для базы данных описывает размер массива привязки по-разному:

Размер массива связывания эквивалентен количеству строк, которые он содержит, умноженному на максимальную длину каждой строки.Максимальная длина строки равна сумме максимальной длины поля плюс накладные расходы следующим образом:

Я склонен верить первому, поскольку вполне возможно, что Python API выполняет эти вычисления, когда выпозвоните Cursor.setinputsizes, но кто-то может подтвердить или опровергнуть это убеждение?

1 Ответ

0 голосов
/ 26 сентября 2018

Документация cx_Oracle верна в отношении того, как работает cx_Oracle.Это значение указывает количество строк, которые могут быть связаны за один раз.Значение 1 подходит для всех случаев, кроме случаев, когда выполняется executemany ().Я рассмотрел вопрос об удалении этого значения, поскольку вы в любом случае можете указать размер при создании переменной (используя параметр arraysize), и если вы этого не сделаете, она автоматически изменит размер переменной, если обнаружит, что несколько строк связаны.

...