3
當使用R
ROracle
,我想結合一些參數數據,所以我這樣做:綁定參數
> dbh <- dbConnect('Oracle', 'user/[email protected]: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
產生接着與一起使用的data.frame
在呼叫(其應與 綁定規範同意)至dbExecStatement
爲 的data.frame
的各行來執行。
我這樣做是錯誤的,還是上面的措辭也許只適用於INSERT
/UPDATE
陳述?
我在說的是做一個選擇與第一個值,然後另一個選擇與第二個值。使用多個(可能爲數千)綁定值運行一個語句是一種常見用例。 – 2012-04-11 03:52:38
我明白你的意圖,但認爲你表達不正確。對不起,我沒有注意到你在數據框中指定了標籤'id'。是的,你的數據框有兩行,根據文檔,它應該爲每一行執行。也許有一個問題,因爲你沒有在數據框中指定'row.names'值?不過,不確定你會如何修復這個舊版本的ROracle軟件包。 – 2012-04-11 14:19:00
我同意 - 但我已經問了這個問題已經有1。5年了,而且我已經不在Oracle公司,所以在這一點上它主要是一個學術問題。 =) – 2012-04-12 02:13:48