我正在尝试在一个闪亮的应用程序中从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)
})
返回以下错误。
警告:中的错误:无法准备查询:错误:语法错误在"'从 BHAVCOPY 中选择 *",其中"时间戳"介于 '" 之间 第 1 行:"从 BHAVCOPY 中选择 *,其中"时间戳"在 '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,'从 bhavcopy 中选择 *",其中"时间戳"介于 '2020' 之间(中出现意外的数字常量
在PostgreSQL管理器中使用此查询(从bhavcopy中选择*,其中"时间戳"介于"2020-06-11"和"2020-07-04"之间,并且"符号"="HDFCLIFE"(返回正确的结果。
我无法捕获特定错误并纠正它。谁能帮忙?
我认为你必须省略外部引号。试试这个:
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$start
和input$end
周围的单引号。