r语言 - 如何将参数化 SQL 与 dplyr 一起使用?



我正在尝试在SQL Server上使用dplyr执行SQL查询:

tbl(con, sql(sqlQuery))

查询是使用sprintf("SELECT ... WHERE a = '%s')动态生成的。这是一种不好的做法,因为它可能会被滥用于 SQL 注入,但我找不到 dplyr 中参数化查询的任何文档或工作示例。能做到吗,怎么做?

连接 (con( 正在使用 DBI、odbc 库和 {SQL Server 本机客户端 11.0} ODBC 驱动程序:

con <- DBI::dbConnect(odbc::odbc(),
Driver = "{SQL Server Native Client 11.0}",

根据你需要参数的目的,根据你的示例,它看起来像WHERE语句,你可以在 R 中定义参数,然后在 dplyr 动词中使用它。

my_param <- "FILTER_VALUE" #create param
my_table <- tbl(con, "TABLE_NAME") #create ref tibble
my_table <- my_table %>% filter( a == my_param ) # filter by param
my_table <- my_table %>% collect() # execute query

您在 R 中分配的任何内容都可以在filtermutate中引用。

最新更新