Правильная настройка для cx_Oracle.Cursor.bindarraysize

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

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

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам