连接到MS SQL varchar(max)的Windows上的Ruby 2.0截断为2048

时间:2014-07-19 21:15:31

标签: ruby sql-server freetds varcharmax

背景: 我写了一些ruby转换脚本 他们从MS SQL获取数据转换它们,然后将其存储回数据库 我正在使用微小的tds gem,它可以在freetds上运行

- 问题: 对于sql中varchar max的列,并且当使用tiny tds提取数据时,字符串长度大于2048,这些列将被精确地截断为2048长度。

Freetds协议7.2确实解决了这个问题,但在Windows平台上不可用 代码在mac上完美运行。但由于与ETL工具的集成,我必须将其部署在Windows机器上。

- 是否有人为此提供解决方案。

1 个答案:

答案 0 :(得分:3)

我自己没有任何代码执行此操作,但您是否尝试过使用set textsize command。我认为默认值是2048。

关于Set TextSize的MS文章

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.

但我认为你可能需要明确地调用它(在获取数据之前使用相同的连接)。