相关疑难解决方法(0)

RODBC字符串被截断

我使用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.有没有办法可以得到完整的字符串.

谢谢

mysql r rodbc

6
推荐指数
1
解决办法
3319
查看次数

RODBC sqlQuery()在返回varchar(MAX)时返回varchar(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.

所以我的问题是,导致这种截断的原因是什么,我该如何避免呢?谢谢!!

sql sql-server r

6
推荐指数
1
解决办法
2243
查看次数

标签 统计

r ×2

mysql ×1

rodbc ×1

sql ×1

sql-server ×1