我想更新SQL表中使用RODBC包的SQLSave函数R. 数据存在于数据框中。 当我尝试运行命令:无法追加到SQL Server表中使用SQLSave中R
sqlSave(DBConn, dat=df, verbose=T, tablename='table', append=T)
我得到以下错误:
Query: INSERT INTO "table" ("col1", "col2", "col3", "col4") VALUES (?,?,?,?,?)
sqlwrite returned
42000 -131 [Sybase][ODBC Driver][Sybase IQ]Syntax error near 'table' on line 1
[RODBC] ERROR: Could not SQLPrepare 'INSERT INTO "table" ("col1", "col2", "col3", "col4") VALUES (?,?,?,?,?)'
我在做什么错在这里,这样我不是得到的SQLQuery的价值观?
感谢所有帮助提前
编辑1 @Gordon后评论:
错误显示5个占位符,但我data.frame只有4列。我确实昏暗(df)并得到4.它是否与df的行索引有关?
EDIT 2
做好以下工作:
sqlSave(DBConn, dat=df, verbose=T, tablename='table', append=T)
现在的错误我得到的是仍然有4个占位符,而不是相同的,但所有的值仍然(?,?,?,?)
编辑3
我试过用s qlUpdate也
sqlUpdate(DBConn, dat=df, verbose=T, tablename='table')
错误,我现在得到的是:
Query: UPDATE "table" SET "col2"=?, "col3"=?, "col4"=? WHERE "col1"=?
Error in sqlUpdate(DBConn, t, tablename = "table", verbose = T) :
42000 -131 [Sybase][ODBC Driver][Sybase IQ]Syntax error near 'table' on line 1[RODBC] ERROR: Could not SQLPrepare 'UPDATE "table" SET "col2"=?, "col3"=?, "col4"=? WHERE "col1"=?'
对于一件事,您有四列和五个占位符。 –
@戈登林诺夫:不错的观察。但是,dim(t)只能给出4。可以因为行inde或与之相关的东西吗? – user1465557
FWIW我从来没有能够得到这个命令来正确追加现有的表;这对我来说似乎是一个错误。 – nrussell