Très vieille question je sais, mais j'ai eu (et résolu pour mon instance) le même problème tout à l'heure, obtenant cette erreur
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
d'utiliser
sqlSave(
Dans le package rodbc.
Je l'ai résolu en définissant
,fast = F
Si quelqu'un d'autre des premiers résultats Google atterrit ici, j'espère que cela vous aidera
EDIT:J'ai donc depuis regardé cela davantage. Lorsque vous définissez l'indicateur sur "F", comme je le recommande ci-dessous, vous insérez les lignes, ligne par ligne dans la base de données. Alors que c'était "T", cela échouerait si une ligne était incorrecte, mais maintenant cette ligne échoue et vous ne le savez pas. Ainsi, la base de données peut manquer des données que vous pensiez y trouver. Vérifiez le nombre de lignes dans la base de données par rapport au nombre de lignes que vous prévoyez d'insérer à partir de votre dataframe. Vous avez probablement une seule valeur incompatible. Ce que j'ai commencé à faire maintenant, c'est d'utiliser la fonction "coller" dans une boucle pour créer une chaîne comme "insert into tableName values("eg1","eg2") " de cette façon je peux obtenir des messages d'erreur expliquant pourquoi cela n'a pas marché dans la base de données