2

ROracle を使用して、R でパラメーターを使用して多数のクエリを処理しようとしています。各クエリにどのパラメーターが表示されるかはわかっていますが、それらがどの順序で表示されるかはわかりません。したがって、各クエリでパラメーターを名前で送信する方法を探しています。サンプルコード:

library(ROracle)

# establish connection to DB
drv <- dbDriver("Oracle")
con <- dbConnect(drv, "User", "password", dbname = "DB")

# create table
createTab <- "create table RORACLE_TEST(num1 number, num2 number)"
dbGetQuery(con, createTab)

# insert String
insStr <- "insert into RORACLE_TEST values(:row1, :row2)"
dbGetQuery(con, insStr, data.frame(row2 = 0, row1 = 1))

# check output
dbGetQuery(con, "SELECT * FROM RORACLE_TEST")

# Output is:
#  NUM1 NUM2
#1    0    1

# Desired output should be:
#  NUM1 NUM2
#1    1    0

この種の解決策を除いて、これに対する回避策は高く評価されます

dbGetQuery(con,gsub(":row2", "0", gsub(":row1", "1", insStr)))

これはSQLインジェクションに対してサニタイズしないためです(パラメーターはユーザー入力から取得されます)。

4

2 に答える 2