Я могу успешно использовать pyODBC с SQLAlchemy в моем док-контейнере для подключения к DB2 для iSeries (версия 7.2).Это работает, но я периодически запускаю запрос и получаю следующий ответ:
>>> Groups.query.get(group_id)
Traceback (most recent call last):
...
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 154, in reraise
raise value
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 550, in do_execute
cursor.execute(statement, parameters)
UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 64-65: illegal UTF-16 surrogate
Иногда это происходит много раз подряд, а затем внезапно останавливается.Это не всегда происходит с одним и тем же набором запросов, и я попробовал два почти идентичных сервера DB2 и получил одинаковые результаты.
«Позиция 64-65» всегда одинакова для одного и того же запроса (хотя иногда запрос возвращает правильные результаты).
Версии:
- pyodbc: 4.0.26
- unixodbc: 2.3.4-1 (debian)
- SQLAlchemy: 1.3.5
- Драйвер iAccess:
ibm-iaccess-1.1.0.11-1.0