4

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

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

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

- 有没有人对此有解决方案。

4

1 回答 1

5

我自己没有任何代码这样做,但是您是否尝试过使用set textsize 命令。我认为默认值是 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.

但我认为您可能需要显式调用它(在获取数据之前使用相同的连接)。

于 2014-07-20T00:17:58.527 回答