我使用RODBC从MySql Server获取数据到R中.
所以在数据库的一列中是一个字符向量
SELECT MAX(CHAR_LENGTH(column)) FROM reqtable;
Run Code Online (Sandbox Code Playgroud)
退货26566
现在我将向您展示我如何遇到问题
`library(RODBC)
con <- odbcConnect("mysqlcon")
rslts <- as.numeric(sqlQuery(con,
"SELECT CHAR_LENGTH(column) FROM reqtable LIMIT 10",
as.is=TRUE)[,1])
Run Code Online (Sandbox Code Playgroud)
`回归
> rslts
[1] 62 31 17 103 30 741 28 73 25 357
Run Code Online (Sandbox Code Playgroud)
其中,作为
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
Run Code Online (Sandbox Code Playgroud)
所以长度> 255的字符串会被截断为255.有没有办法可以得到完整的字符串.
谢谢
我正在使用该RODBC包来查询数据库中的文本列.该数据库基于Microsoft SQL Server 2008 R2构建.SQL中列的数据类型是nvarchar(max).
但是,当我跑:
# Set up ODBC connection to CCWEB5 production server
# Note: default database is set to "CCSalary"
ccweb5.prod <- odbcConnect("ccweb5")
# Read in some job ad text
job.text <- sqlQuery(ccweb5.prod,"
SELECT TOP 100
ja.JobTitle,
ja.JobText as 'JobText',
LEN(ja.JobText) as 'JobTextLength'
FROM JobStore.dbo.JobAd as ja (NOLOCK)
")
Run Code Online (Sandbox Code Playgroud)
在SQL中,我期待(对于顶行):
JobTitle JobText JobTextLength
IT Field Service Technician <text goes here...> 2742
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时: nchar(as.character(job.text[1,2]))
它返回:255.
所以我的问题是,导致这种截断的原因是什么,我该如何避免呢?谢谢!!