Ubuntu 中的 RODBC 将文本字符串截断为 255 个字符

Posted

技术标签:

【中文标题】Ubuntu 中的 RODBC 将文本字符串截断为 255 个字符【英文标题】:RODBC in Ubuntu truncates text strings to 255 characters 【发布时间】:2017-12-15 20:17:42 【问题描述】:

我正在使用安装在 Ubuntu 16.0.4 上的 RODBC,并且我正在将基于 Windows 的 R 项目/包移植到这个 Linux 环境。我遇到了sqlQuery 仅从 MS SQL Server 数据库返回文本字符串的前 255 个字符的问题。找了很多关于这个问题的参考资料,我把数据库中的列类型改成nvarchar(3500),想必能解决这个问题。这在 Windows 环境中不是问题。尽管许多人说将列变量类型更改为nvarchar(4000) 或更少,但我似乎无法绕过这个 255 个字符的限制,可以解决这个问题。我尝试了很多东西,包括cast(...as nvarchar(1000)),例如,都无济于事。

我哪里错了?

【问题讨论】:

用 JDBC 驱动代替 ODBC 驱动怎么样? 在下面查看我的修复。我确实切换了驱动程序,但没有切换到 JDBC。 【参考方案1】:

我使用的是 FreeTDS。我切换到本机 MS SQL Server 驱动程序,这解决了这个问题。我不知道问题出在哪里,但是用 SQL 服务器的 MS 驱动程序替换 FreeTDS 就可以了。

【讨论】:

以上是关于Ubuntu 中的 RODBC 将文本字符串截断为 255 个字符的主要内容,如果未能解决你的问题,请参考以下文章

RODBC::sqlSave() 创建表,警告:在列中截断为 255 个字节?

RODBC :: sqlSave()创建表,警告:在列中截断为255个字节?

当保存到 SQL Server 到 varchar(255) 时,RODBC::sqlsave() 会截断 DF 中的 col

通过 rodbc 写入 mysql 数据库的 posix 被截断

如何截断Angular2中的文本?

如何将PHP中的字符串截断为最接近一定数量字符的单词?