我正在尝试使用函数生成一堆 SQL 脚本,DBI::sqlInterpolate
但由于脚本嵌入了与 R 变量一起返回的引号,因此不断出现 SQL 错误。
这是代码:
> x<-'state_transtions'
> y<-'transition_time'
> script<-"select * from ?x WHERE DATE(?y)> DATE_SUB(NOW(), INTERVAL 1 DAY)"
> sqlInterpolate(ANSI(),script,x=x,y=y)
#<SQL> select * from 'state_transtions' WHERE DATE('transition_time')> DATE_SUB(NOW(), INTERVAL 1 DAY)
如您所见,我正在通过 R 代码生成所需的 SQL 表名和列名。因此,注入值 (?x, ?y) 作为变量传递。
我查找了这个最接近找到解决方案的链接,但老实说,我不明白。[ https://rstats-db.github.io/DBI/reference/sqlParseVariables.html#examples]