r - RPostgreSQL 查询在 Shiny 服务器中不起作用
问题描述
我正在尝试从闪亮的应用程序中的 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)
})
返回以下错误。
警告:错误:无法准备查询:错误:在“'SELECT * FROM bhavcopy WHERE "TIMESTAMP" BETWEEN '" LINE 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')返回正确的结果。
我无法捕捉到特定错误并纠正它。任何人都可以帮忙吗?
解决方案
我认为您必须省略外部引号。尝试这个:
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)
})
我无法对其进行测试,但也许您还必须省略 and 周围的单input$start
引号input$end
。
推荐阅读
- facebook - 2018 年通过网站链接打开 Facebook 应用程序的正确方法?
- python - Python。从 Worker 发送信号
- javafx - 行开始/结束到嵌套的 javafx 组/窗格
- php - 从 MySQL 设置一个数组,然后将每个值设置为变量 PHP
- ionic-framework - Ionic 3 Virtual Scroll:更改项目大小
- python - 将 .shp 文件写入 S3
- python - Python - 即使使用常用方法也无法从另一个文件导入变量
- javascript - 用 javascript ipinfo 响应填充输入字段
- javascript - 动画数字计数器不添加逗号
- c# - 带有附加日期列的 EF6 多对多表