ROracle SELECT语句中的绑定参数

时间:2010-09-01 21:46:28

标签: oracle r

ROracle中使用R时,我想将一些参数绑定到数据,所以我这样做:

> dbh <- dbConnect('Oracle', 'user/pass@host.com:port/sid')
> st <- dbPrepareStatement(dbh, statement="SELECT x FROM mytab WHERE id=:1",
                           bind="character")
> st <- dbExecStatement(st, data.frame(id=c("9ae", "1f3"), stringsAsFactors=F))
> fetch(st)
    x
0 FOO

出乎意料的是它只使用数据框的第一行来执行SELECT(如果它使用两行,在这种情况下我会得到2行输出,而不是1),与ROracle文档相反:

  

dbPrepareStatement的对象   然后将产品与a一起使用   data.frame(应该同意   调用中的绑定规范)   要执行的dbExecStatement   data.frame的每一行。

我这样做是错的,或者上述措辞是否仅适用于INSERT / UPDATE声明?

1 个答案:

答案 0 :(得分:0)

我认为你是误会。

基本上,您的SQL有一个绑定变量,但您尝试绑定两个值。第二个值被扔掉了。也许你可以在SQL中使用IN运算符做类似的事情。