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