10

我在 R 中有一个变量,我想将它传递给数据库。在阅读 Google 结果时,我可以像许多人建议的那样使用paste,但由于 SQL 注入漏洞,这是不安全的。我宁愿喜欢这样的东西:

x <- 42
sqlQuery(db, 'SELECT Id, Name FROM People WHERE Age > ?;', bind=c(x))

是否可以在 RODBC 中使用参数化查询?如果没有,是否有支持它们的替代库?

我正在使用 SQL Server、RODBC 1.3-6 和 R 3.0.0。

4

1 回答 1

9

Mateusz ZoltakRODBCext在 2014 年编写了 package(基于 Brian Ripley 和 Michael Lapsley 的工作):

conn = odbcConnect('MyDataSource')

sqlPrepare(conn, "SELECT * FROM myTable WHERE column = ?")
sqlExecute(conn, 'myValue')
sqlFetchMore(conn)

来源:http ://cran.r-project.org/web/packages/RODBCext/vignettes/Parameterized_SQL_queries.html

于 2015-03-28T05:35:34.113 回答