odbc sqlquery中的R文本替换

时间:2017-03-13 03:18:32

标签: r

我尝试在R中使用文本替换来使用我的SQL odbc连接查询输入自定义日期。

例如,我可以将date1更改为2016-01-31,数据将自动执行。但是,使用bquote文本替换,它似乎不起作用....

有什么想法吗?

library("rodbc")
date1 <- c("2016-12-31")

myconn <- odbcConnect("edwPROD",uid="username",pwd="BBBBB")
data1 <- sqlQuery(myconn,"
SELECT  a.*
    FROM (SELECT id
                ,status_code                
                ,rate_plan
                ,publication
                ,active_count
                FROM prod_view.fct_active
                WHERE snap_start_date<=bquote(.date1)
                ) AS a  
")
odbcClose(myconn)

1 个答案:

答案 0 :(得分:1)

这是包infuser的工作。它允许您更改SQL请求的一部分,在本例中为date1

library(infuser)
date1 <- c("2016-12-31")

sql_query_template <- "SELECT  a.*
    FROM (SELECT id
                ,status_code
                ,rate_plan
                ,publication
                ,active_count
                FROM prod_view.fct_active
                WHERE snap_start_date<='{{date1}}'
                ) AS a;"
sql_query <-infuse(sql_query_template, date1=date1)

myconn <- odbcConnect("edwPROD",uid="username",pwd="BBBBB")
data1 <- sqlQuery(myconn,sql_query)
odbcClose(myconn)