RPostgreSQL 查询在 Shiny 服务器中不起作用

RPostgreSQL query not working in Shiny server

我正尝试在闪亮的应用程序中从 PostgreSQL 数据库获取数据。查询不工作。 运行 以下

function(input, output) {
  data.df<- eventReactive(input$fetcher, {
    qry<-paste0("\'SELECT * FROM bhavcopy WHERE \"TIMESTAMP\" BETWEEN \'",input$start,"\' AND \'",input$end,"\' AND \"SYMBOL\"=\'",input$symbol,"\'\'")

    dbGetQuery(con,qry)
  })

returns下面的错误。

警告:错误:无法准备查询:错误:“'SELECT * FROM bhavcopy WHERE "TIMESTAMP" BETWEEN '”处或附近的语法错误 第 1 行:'SELECT * FROM bhavcopy WHERE "TIMESTAMP" BETWEEN '2020-06-1... ^

当我使用查询(复制 cat(qry) 的结果)和 运行 以下查询时

dbGetQuery(con,'SELECT * FROM bhavcopy WHERE "TIMESTAMP" BETWEEN '2020-06-11' AND '2020-07-04' AND "SYMBOL"='HDFCLIFE'')

错误是

错误:“dbGetQuery(con,'SELECT * FROM bhavcopy WHERE "TIMESTAMP" BETWEEN '2020”

中出现意外的数字常量

在 PostgreSQL 中使用此查询(SELECT * FROM bhavcopy WHERE "TIMESTAMP" BETWEEN '2020-06-11' AND '2020-07-04' AND "SYMBOL"='HDFCLIFE')经理 returns 正确的结果。

我无法捕获特定错误并进行纠正。有人可以帮忙吗?

我认为您必须省略外引号。试试这个:

function(input, output) {
  data.df<- eventReactive(input$fetcher, {
    qry<-paste0("SELECT * FROM bhavcopy WHERE \"TIMESTAMP\" BETWEEN '", input$start, "' AND '", input$end, "' AND \"SYMBOL\"= '", input$symbol, "'")

    dbGetQuery(con,qry)
  })

我无法测试它,但也许您还必须省略 input$startinput$end.

周围的单引号