Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak używać parametrów SQL w fragmencie SQL przeceny języka R?

Może to rozwiązanie dla Ciebie, używając Glue_SQL działa na moim komputerze

https://community.rstudio .com/t/using-multiple-r-variables-in-sql-chunk/2940/13

Kawałki Rmd:

library(DBI)
library(glue)
library(RSQLite)

con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars, overwrite = TRUE)

cyl_int <- c(4L, 6L)
cyl_sql <- glue_sql("{cyl_int*}")

  SELECT * FROM mtcars
  WHERE cyl IN (?cyl_sql)
  LIMIT 3

W przypadku kolumny daty może być konieczne sformatowanie jej poprawnie zgodnie z bazą danych lub użycie to_date(etc, '%d%...') Tutaj w sqlite jest to łatwe z datami ISO-8601, przykład:

library(DBI)
library(glue)
library(RSQLite)

con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
mtcars$DATE_1 <- seq(from = Sys.Date() - 15, to = Sys.Date() + nrow(mtcars) -16, by = 1) %>% as.character()
dbWriteTable(con, "mtcars", mtcars, overwrite = TRUE)

cyl_int <- c(4L, 6L)
cyl_sql <- glue_sql("{cyl_int*}")

d_date_sql <- glue_sql("{Sys.Date()*}", .con = con)

Pamiętaj, że musisz określić parametr .con dla parametrów znaków, jak powiedział tutaj

  SELECT cyl, mpg, DATE_1 FROM mtcars
  WHERE DATE_1 >= ?d_date_sql
  ORDER BY DATE_1




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamiczne zapytanie PL/SQL, jak zignorować parametry null?

  2. Rekordy wstawione do mojej tabeli przez klienta SQL nie wyświetlają się, gdy są używane w programie jdbc

  3. EXTRACT (data/godzina) Funkcja w Oracle

  4. Jak dodać przesunięcie w zapytaniu wybierającym w Oracle 11g?

  5. Wybierz bez klauzuli FROM w Oracle