Связанные параметры в инструкциях ROracle SELECT - PullRequest
3 голосов
/ 02 сентября 2010

При использовании 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

Что неожиданно, так это то, что он использует только first строка фрейма данных для выполнения SELECT (если бы он использовал обе строки, я бы получил 2 выходных строки в этом случае, а не 1), в отличие от документации ROracle:

Объект, который создает dbPrepareStatement, затем используется вместе с data.frame (который должен соответствовать связанной спецификации) в вызовах dbExecStatement, которые должны быть выполнены для каждой строки data.frame.

Я делаю это неправильно, или приведенное выше словосочетание возможно применимо только к INSERT / UPDATE заявлениям?

1 Ответ

0 голосов
/ 10 апреля 2012

Я думаю, что вы недоразумение.

По сути, ваш SQL имеет одну переменную связывания, но вы пытаетесь связать два значения.Второе значение выбрасывается.Возможно, вы можете сделать нечто подобное, используя оператор IN в своем SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...