как указать кавычки при использовании запроса sql в R блестящий - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь создать простое приложение, чтобы показать, как писать sql запросов: пользователи могут вводить свои полные sql запросы и видеть результаты.

К сожалению, я не могу заставить приложение работать, если я добавляю строку к запросу, например, select * from iris where Species = 'setosa'

Это приносит error: unrecognized token: "'"

Вот повторение :

library(shiny)
library(RSQLite)

db_example <- RSQLite::datasetsDb()

# check this works outside of shiny:
#dbGetQuery(db_example, "SELECT * FROM iris WHERE Species = 'setosa' ; ")

ui<- fluidPage(
  textInput(inputId = "sql_query",
            label = "write your sql query:"),
  actionButton(inputId = "submit", label = "Run"),
  tableOutput(outputId = "my_table")

)

server <- function(input,output) {

  my_result <- eventReactive(input$submit, {

    dbGetQuery(db_example,
               input$sql_query
               )

  })

  output$my_table <- renderTable({
    my_result()
  })

}


shinyApp(ui, server)

Это прекрасно работает только для select * from iris, но если вы попытаетесь добавить строковое условие, такое как select * from iris where Species = 'setosa', оно выдаст ошибку, даже если тот же синтаксис работает отлично вне Shiny.

Я пробовал использовать различный синтаксис, чтобы заставить цитату работать, как и ожидалось, без удачи (включая побег с) ... Есть идеи, как это сделать?

Вот мои подробности сеанса:

R версия 3.6.1 (2019-07-05)
Платформа: x86_64-apple-darwin15.6.0 (64-разрядная версия)
Работает под: macOS Mojave 10.14.6

packageVersion ("блестящий")
[1] '1.3.2'
packageVersion ("RSQLite")
[1] '2.1.1'

ОБНОВЛЕНИЕ: Кажется, это проблема, связанная со спецификой платформы c, так как я получил тот же код, который отлично работает на нашем сервере ... так что эта проблема в macOS Mojave 10.14.6 остается загадкой ...

...