RODBC字符串被截断

时间:2011-01-07 07:36:54

标签: mysql r rodbc

我使用RODBC从MySql Server获取数据到R中 所以在数据库的一列中是一个字符向量

SELECT MAX(CHAR_LENGTH(column)) FROM reqtable;

RETURNS 26566

现在我将向您展示我如何遇到问题

`library(RODBC)
 con <- odbcConnect("mysqlcon")
 rslts <- as.numeric(sqlQuery(con,
                          "SELECT CHAR_LENGTH(column) FROM reqtable LIMIT 10",
                          as.is=TRUE)[,1])

` 返回

> rslts
 [1]  62  31  17 103  30 741  28  73  25 357

在哪里 rslts <- nchar(as.character(sqlQuery(con, "SELECT column FROM reqtable LIMIT 10", as.is=TRUE)[,1])) 返回

> rslts
 [1]  62  31  17 103  30 255  28  73  25 255

所以长度为&gt的字符串; 255在255处被截断。有没有办法可以得到完整的字符串。

由于

3 个答案:

答案 0 :(得分:6)

PostgreSQL ODBC驱动程序有一个名为MaxLongVarcharSize的变量,我发现默认设置为8190(我在Windows和Ubuntu上都使用过它)。 MySQL ODBC驱动程序有可能将类似的变量设置为255。

答案 1 :(得分:1)

您可以尝试使用另一个db驱动程序,例如JDBC。根据我的经验,这有时可以解决问题。

另外,尝试RMySQL包(需要编译当前的二进制文件。如果你自己编译它们,请求你与社区分享)

可能RODBC软件包的来源“可以”提供对默认长度限制的见解(如果有的话)。 (我还没有看过它,但我很快就会在这里发布更新)

答案 2 :(得分:0)

检索到的字符数量可能受限的另一种可能性是RODBC包本身对{655}字节的“完整性”检查限制 - as mentioned here