Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách sử dụng các tham số SQL trong một đoạn SQL đánh dấu R

Có thể đây là một giải pháp cho bạn, sử dụng keo_sql, nó hoạt động trên máy tính của tôi

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

Rmd khối:

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

Đối với cột ngày, bạn có thể phải định dạng nó chính xác theo cơ sở dữ liệu của mình hoặc sử dụng to_date(etc, '%d%...') Ở đây trong sqlite, thật dễ dàng với các ngày ISO-8601, ví dụ:

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)

Lưu ý rằng bạn phải chỉ định tham số .con cho các tham số ký tự, như đã nói tại đây

  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. Mã hóa mật khẩu trong R - để kết nối với Oracle DB bằng RODBC

  2. Hàm Oci_connect không được xác định trong CentOS với Oracle

  3. tạo gói oracle đã gặp PLS-00103:Gặp phải biểu tượng CREATE

  4. Kích hoạt các lựa chọn thay thế cho hai bảng phải cập nhật lẫn nhau

  5. Cách định dạng tháng bằng chữ số La mã trong Oracle