在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
声明?
答案 0 :(得分:0)
我认为你是误会。
基本上,您的SQL有一个绑定变量,但您尝试绑定两个值。第二个值被扔掉了。也许你可以在SQL中使用IN
运算符做类似的事情。