Pergunta muito antiga eu sei, mas eu tive (e resolvi para minha instância) o mesmo problema agora, recebendo este erro
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
de usar
sqlSave(
No pacote rodbc.
Eu resolvi isso configurando
,fast = F
Se mais alguém dos primeiros resultados do Google chegar aqui, espero que isso ajude
EDIT:Então eu já olhei para isso mais. Ao definir o sinalizador como "F", como recomendo abaixo, você insira as linhas, linha por linha no banco de dados. Enquanto era "T", falharia se uma linha estivesse incorreta, mas agora essa linha falha e você não sabe disso. Portanto, o banco de dados pode estar faltando dados que você achava que estavam lá. Verifique a contagem de linhas no banco de dados versus o número de linhas que você espera que sejam inseridas no seu dataframe. Você provavelmente tem um único valor incompatível. O que comecei a fazer agora é usar a função "paste" em um loop para criar uma string como "insert into tableName values("eg1","eg2") " desta forma, posso receber mensagens de erro sobre por que não foi no banco de dados