【发布时间】:2018-01-24 13:32:03
【问题描述】:
我正在尝试使用DBI::sqlInterpolate 函数生成一堆 SQL 脚本,但由于脚本嵌入了与 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]
【问题讨论】:
-
使用
sqldf让sql查询更简单
标签: r sql-injection rmysql r-dbi