我在插入数据库时遇到问题,我创建了一个将数据插入表中的函数,但它只影响第一行。
这是我的功能:
add<- function (x,y,z){
channel <- odbcConnect(dsn="R",uid="root",pwd="toor")
num <- y
s <- x
l<-z
requetesql <- paste("INSERT INTO `table` (`S`,`Num`, `L`) VALUES ('",s,"','",num,"', '",l,"');")
sqlQuery(channel,requetesql)
}
我正在使用SQLQuery和RODBC。 有sqlSave可以使用数据帧,但我不能使用它,因为我必须改变我的所有程序并从头开始。
您可以在此处看到我的查询工作正常
[1] "INSERT INTO `table` (`S`,`Num`, `L`) VALUES (' 1 ', ' 3 ', ' a');"
[2] "INSERT INTO `table` (`S`,`Num`, `L`) VALUES (' 1 ', ' 3 ', ' b ');"
[3] "INSERT INTO `table` (`S`,`Num`, `L`) VALUES (' 1 ', ' 3 ', ' c ');"
[4] "INSERT INTO `table` (`S`,`Num`, `L`) VALUES (' 1 ', ' 3 ', ' d ');"
[5] "INSERT INTO `table` (`S`,`Num`, `L`) VALUES (' 1 ', ' 3 ', ' e ');"
答案 0 :(得分:1)
我认为要插入多行,您需要提供参数行数来获取。
sqlQuery(channel, query, errors = TRUE, ..., rows_at_time)
rows_at_time The number of rows to fetch at a time, between 1 and 1024. See ‘Details’
你可以看到完整的手册=&gt;第18页 http://cran.r-project.org/web/packages/RODBC/RODBC.pdf
谢谢