Ruby 2.0 на окнах, подключающихся к MS SQL, varchar(max), усеченный до 2048
Справочная информация: я написал несколько сценариев преобразования ruby, они получают данные из MS SQL, преобразуют их и затем сохраняют обратно в базу данных. Я использую крошечный гем tds, который работает через freetds.
--Проблема: для столбцов в sql, которые имеют значение varchar max и имеют длину строки больше 2048, когда данные извлекаются с использованием крошечных tds, эти столбцы точно усекаются до длины 2048.
Протокол Freetds 7.2 исправляет эту проблему, но не доступен на платформе Windows, код прекрасно работает на Mac. но из-за интеграции с инструментом ETL я должен развернуть его на машине с Windows.
- есть ли у кого-нибудь решение для этого.
1 ответ
У меня нет никакого кода, делающего это сам, но вы пытались использовать команду set textize. Я думаю, что по умолчанию 2048.
Из статьи MS о Set TextSize
The SQL Server Native Client ODBC driver and SQL Server
Native Client OLE DB Provider for SQL Server automatically
set TEXTSIZE to 2147483647 when connecting.
Но я думаю, что вам может потребоваться вызвать это явно (используя то же соединение, до получения данных).