2011-01-07 170 views
6

我正在使用RODBC从MySql Server中将数据提取到R中。
所以在数据库中的一列是一个字符向量RODBC字符串被截断

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 

所以长度> 255在255处被截断得到的字符串是否有办法,我可以得到完整的字符串。

谢谢

+1

这个问题解决了我的问题:http://stackoverflow.com/questions/22366195/rodbc-sqlquery-returns-varchar255-when-it-should-return-varcharmax – bart 2016-06-03 00:01:39

回答

2

PostgreSQL ODBC驱动程序有一个名为MaxLongVarcharSize的变量,默认情况下我已将它设置为8190(我已将它用于Windows和Ubuntu)。有可能MySQL ODBC驱动程序有一个相似的变量设置为255.

+0

嘿任何想法如何检查并编辑它?我想这是一个类似的问题 – 2011-09-08 16:05:49

1

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

此外,尝试RMySQL包(目前的程序需要进行编译。如果你自己编译它们,请你,请与社区分享)

也许RODBC包的源“可以”提供的见解进入缺省长度限制(如果有的话)。 (我还没有看过它,但我很快就会在此处发布更新)

+0

嘿,谢谢你它工作完美罚款与JDBC连接。然而,它不明白为什么它无法正常工作与ODBC连接:( – 2011-01-09 06:54:43

0

为什么检索到的字符数可能受限的另一种可能性是在RODBC程序包本身中的“理智”检查限制为65535字节 - as mentioned here