2011-01-07 220 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