Pass R variable to RODBC's sqlQuery with multiple entries? -


i'm in process of learning r, wave sas goodbye, i'm still new , somehow have difficulties finding i'm looking for.

but specific case, read: pass r variable rodbc's sqlquery? , made work myself, long i'm inserting 1 variable in destination table.

here code:

library(rodbc) channel <- odbcconnect("test") b <- sqlquery(channel,   "select top 1 noinscr    table    prixvente > 100    order datevente desc")  sqlquery(channel,    paste("insert testtable (uniqueid) values (",b,")", sep = "") 

when replace top 1 other number, let's top 2, , run exact same code, following errors:

[1] "42000 195 [microsoft][sql server native client 10.0][sql server]     'c' not recognized built-in function name."       [2] "[rodbc] error: not sqlexecdirect      'insert testtable  (uniqueid) values (c(8535735, 8449336))'" 

i understand because there c generated, assume column when give command: paste(b).

so how can "8535735, 8449336" instead of "c(8535735, 8449336)" when using paste(b)? or there way this?

look collapse argument in paste() documentation. try replacing b paste(b, collapse = ", "), shown below.

edit joshua points out, sqlquery returns data.frame, not vector. so, instead of paste(b, collapse = ", "), use paste(b[[1]], collapse = ", ").

library(rodbc) channel <- odbcconnect("test") b <- sqlquery(channel,   "select top 1 noinscr    table    prixvente > 100    order datevente desc")  sqlquery(channel,    ## note paste(b[[1]], collapse = ", ") in line below    paste("insert testtable (uniqueid) values (", paste(b[[1]], collapse = ", "),")", sep = "") 

Comments

Popular posts from this blog

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

python Tkinter Capturing keyboard events save as one single string -

sql server - Why does Linq-to-SQL add unnecessary COUNT()? -