Я не понимаю ошибку, которая появляется в моем SQL-запросе. Если я выбираю в SQL Select *
-> он работает нормально, и я получаю таблицу, однако, если я выбрать любой колонки/с, что дает мне ошибку:Ошибка SQL Query при выборе отдельных столбцов
Error in
$<-.data.frame
(*tmp*
, "PROBE", value = structure(integer(0), .Label = character(0), class = "factor")) :
replacement has 0 rows, data has 1427
Вот мой SQL код:
if(input$filter == 1){
sqlOutput <- reactive({
sqlInput <- paste("select * from DWH.PROBE where DWH.PROBE.Nr =",paste0("'",d(),"'"), "And DWH.PROBE.AB BETWEEN",input$abmfrom, "AND",input$abmto,"ORDER BY Datum asc")
print(sqlInput)
dbGetQuery(con$cc, sqlInput)
})
}else{
sqlOutput <- reactive({
sqlInput <- paste("select * from DWH.PROBE where DWH.PROBE.S BETWEEN",d2(), "AND",input$sgehalt2, "And DWH.PROBE.AB BETWEEN",input$abmfrom2, "AND",input$abmto2,"ORDER BY Datum asc")
dbGetQuery(con$cc, sqlInput)
})}
А если я просто добавить к этим SQL запросов
select DWH.PROBE.S, DWH.PROBE.AB.. from DWH.PROBE
Тогда приходит выше упомянутой ошибки.
Кроме того я должен сказать, если я буду использовать этот SQL-запрос в простом коде:
rs <- dbSendQuery(con, paste("select DWH.PROBE.AB, DWH.PROBE.S from DWH.PROBE where DWH.PROBE.Nr = '50' And DWH.PROBE.AB BETWEEN 40 AND 50 ORDER BY Datum asc"))
data <- fetch(rs)
Это дает мне результаты ...
Есть идеи?
[EDIT *, как мой вопрос не является дубликатом]
Вопрос размещен здесь: http://stackoverflow.com/questions/32048072/how-to-pass-input-variable-to-sql-statement-in-r-shiny на самом деле не имеет ничего общего с моей темой. Как мы можем видеть ошибку в этом посте:
Error in .getReactiveEnvironment()$currentContext() : Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
не имеют проблем с передачей входной переменной в SQL Statement и, кроме того, если вы можете увидеть в моем SQL: Запросов в реактивном контексте !:
sqlOutput <- reactive({...
решение для выше вопрос был:
поставить SQL-запрос в реактивном контексте который не вещь в моем случае
[EDIT 2] -> биты, связанные с sqlOutput()
Вот немного кода, связанного с sqlOutput()
, которые я использую в моей блестящей App (на данный момент это единственный бит, потому что я застрял SQL Query)
output$tabelle <- DT::renderDataTable({
data <- sqlOutput()
data$PROBE <- as.factor(as.character(data$PROBE))
data
}, rownames=TRUE, filter="top", class = 'cell-border stripe',
options = list(pageLength = 100, lengthMenu=c(100,200,500), columnDefs = list(list(width = '200px', targets = "_all"),list(bSortable = FALSE, targets = "_all"))))
Благодаря
Связанное сообщение: http://stackoverflow.com/questions/29814912 – zx8754
Возможный дубликат [Как передать входную переменную в оператор SQL в R shiny?] (Http://stackoverflow.com/questions/32048072/how- to-pass-input-variable-to-sql-statement-in-r-shiny) –
Его не дублирует @Pork Chop, если вы заметили, что мой SQL-запрос находится в реактивном контексте *, так что это не проблема –