R Studio Shiny Server - 使用SQL脚本时$运算符无效

时间:2016-09-08 18:46:36

标签: r shiny shiny-server rodbc

有人遇到他的问题吗?我有一个闪亮的应用程序,使用SQL文件使用RODBC包从MS SQL服务器导入数据。我已将此问题缩小到 server.R 文件中:

ch <- odbcConnect(dsn = xxxxxx)
iQry <- readChar("LeaderDashInd.sql", file.info("LeaderDashInd.sql")$size, T)
oQry <- readChar("LeaderDashOrg.sql", file.info("LeaderDashOrg.sql")$size, T)
iDat <- sqlQuery(channel = ch, query = iQry, stringsAsFactors = F)
oDat <- sqlQuery(channel = ch, query = oQry, stringsAsFactors = F)
odbcClose(ch)

# PREPROCESSING --------------------------
cy <- max(iDat$CampYear)

应用停在上面的最后一行并给出... iDat $ CampYear中的错误:$运算符对原子向量无效。我知道这个块是问题所在,因为当我有相同的应用程序运行导入的csv文件时,它可以工作。

有几点需要注意:

  1. 此代码首先在shinyServer函数外的server.R文件中运行。
  2. 从我的工作站通过R Studio 启动时,该应用运行正常。它仅在我们的Shiny Server安装上运行时停止工作。
  3. 闪亮的软件包是最新的,闪亮的服务器是最近安装的。
  4. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

仅供参考...将SQL查询更改为存储过程,然后使用RODBC::sqlQuery调用存储过程解决了问题。 $ operator invalid 错误即将发生,因为查询未运行并返回空向量。

仍然没有解释为什么使用readChar的独立查询在Shiny Server中不起作用,但是嘿......这是一个修复。