我正在尝试使用R/RODBC从Microsoft SQL Server数据库查询变量。RODBC将字符字符串截断为8000个字符。
原始代码:按照RODBC文档,截断为255个字符 library(RODBC) con_string <- odbcConnect("DSN") query_string <- "SELECT text_var FROM table_name" dat <- sqlQuery(con_string, query_string, stringsAsFactors=FALSE)
部分解决方案:修改查询字符串,在7999个字符后截断文本。 library(RODBC) con_string <- odbcConnect("DSN") query_string <- "SELECT [text_var]=CAST(text_var AS VARCHAR(8000)) FROM table_name" dat <- sqlQuery(con_string, query_string, stringsAsFactors=FALSE)
表格/变量包含长达250,000个字符的文本字符串。我真的想在R中处理所有文本。这是可能的吗?
原始代码:按照RODBC文档,截断为255个字符 library(RODBC) con_string <- odbcConnect("DSN") query_string <- "SELECT text_var FROM table_name" dat <- sqlQuery(con_string, query_string, stringsAsFactors=FALSE)
部分解决方案:修改查询字符串,在7999个字符后截断文本。 library(RODBC) con_string <- odbcConnect("DSN") query_string <- "SELECT [text_var]=CAST(text_var AS VARCHAR(8000)) FROM table_name" dat <- sqlQuery(con_string, query_string, stringsAsFactors=FALSE)
表格/变量包含长达250,000个字符的文本字符串。我真的想在R中处理所有文本。这是可能的吗?
@BrianRipley在以下文档的第18页讨论了问题(但没有解决方案): https://cran.r-project.org/web/packages/RODBC/vignettes/RODBC.pdf
@nutterb在GitHub上使用RODBCext
包讨论了类似的问题:
https://github.com/zozlak/RODBCext/issues/6
在SO上看到类似的讨论,但没有使用RODBC与VARCHAR>8000的解决方案。
RODBC sqlQuery()返回varchar(255),而应返回varchar(MAX)
注意:
- R 3.3.2
- Microsoft SQL Server 2012
- Linux RHEL 7.1
- Microsoft ODBC Driver for SQL Server
- R 3.3.2
- Microsoft SQL Server 2012
- Linux RHEL 7.1
- Microsoft ODBC驱动程序的SQL Server