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.

Но я думаю, что вам может потребоваться вызвать это явно (используя то же соединение, до получения данных).

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