首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用dbplyr从shiny-server获取数据

无法使用dbplyr从shiny-server获取数据
EN

Stack Overflow用户
提问于 2018-02-27 17:07:49
回答 1查看 236关注 0票数 0

我正在尝试从AWS SQL Server获取数据。这段代码在本地PC上运行得很好,但在shiny-server (ubuntu)上就不行了。

代码语言:javascript
复制
library(dbplyr)
library(dplyr)
library(DBI)    

con <- dbConnect(odbc::odbc(),
                 driver = "FreeTDS",
                 server = "aws server",
                 database = "",
                 uid = "",
                 pwd = "")
tbl(con, "shops")
dbGetQuery(con,"SELECT *
                  FROM shops")

"R version 3.4.2 (2017-09-28)"

packageVersion("dbplyr")
[1] ‘1.2.1.9000’

packageVersion("dplyr")
[1] ‘0.7.4’
packageVersion("DBI")
[1] ‘0.7.15’

我有下一个错误:

代码语言:javascript
复制
tbl(con, "shops")
Error: <SQL> 'SELECT *
FROM "shops" AS "zzz2"
WHERE (0 = 1)'
  nanodbc/nanodbc.cpp:1587: 42000: [FreeTDS][SQL Server]Incorrect syntax near 'shops'. 

但是dbGetQuery(con,"SELECT * FROM shops")运行得很好。你能解释一下哪里出了问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-19 07:25:54

这更有可能是因为FreeTDS驱动程序没有返回dbplyr为了使用MS SQL转换而期望看到的class。解决方法是获取class(con)的结果,然后在连接之后、调用tbl()之前立即添加以下行。用class(con)调用的结果替换[you class name]

代码语言:javascript
复制
sql_translate_env.[your class name] <- dbplyr:::`sql_translate_env.Microsoft SQL Server`
sql_select.[your class name]<- dbplyr:::`sql_select.Microsoft SQL Server`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49004872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档