У меня есть программа Python, которая подключается к базе данных MSSQL с помощью соединения ODBC. Библиотека Python, которую я использую, называется pypyodbc.
Вот моя установка:
- Windows 8.1 x64
- SQL Server 2014 x64
- Питон 2.7.9150
- ПиПиОДБК 1.3.3
- Драйвер ODBC: собственный клиент SQL Server 11.0
Проблема, с которой я сталкиваюсь, заключается в том, что когда я запрашиваю таблицу со столбцом varchar (max), содержимое усекается.
Я новичок в pypyodbc, и я искал как сумасшедший и не могу найти ничего о том, как предотвратить это в pypyodbc или даже pyodbc. По крайней мере, не с поисковыми терминами, которые я использовал, и я не знаю, какие еще фразы попробовать.
Я даже пытался добавить SET TEXTSIZE 2147483647;
к моему SQL-запросу, но данные все равно усекаются.
Как предотвратить это? Или вы можете указать мне правильное направление, пожалуйста?
ОБНОВЛЕНИЕ:
Итак, я попытался выполнить приведение в своем SQL-запросе. Когда я делаю CAST(my_column as VARCHAR(MAX))
, он усекается в той же позиции. Однако, если я делаю CAST(my_column as VARCHAR(8000))
, это дает мне больший набор текста, но все же усекает часть содержимого. Если я попытаюсь сделать что-то большее, чем 8000
, я получу сообщение об ошибке, говорящее, что 8000
— это максимальное значение, которое я могу использовать. Кто-нибудь знает, что здесь может происходить? Кажется странным, что использование MAX
не сработает.