Après des heures de travail sur ce sujet, j'ai finalement pu faire fonctionner sqlSave tout en spécifiant le nom de la table - respiration profonde, par où commencer. Voici la liste des choses que j'ai faites pour que cela fonctionne :
- Ouvrez l'administrateur ODBC 32 bits, créez un DSN utilisateur et configurez-le pour votre base de données spécifique. Dans mon cas, je crée une table temporaire globale, donc j'ai lié à tempdb. Utilisez ce nom de connexion dans votre
odbcConnection(Name)
. Voici mon codemyconn2 <- odbcConnect("SYSTEMDB")
. - Ensuite, j'ai défini mes types de données avec le code suivant :
columnTypes <- list(Record = "VARCHAR(10)", Case_Number = "VARCHAR(15)", Claim_Type = "VARCHAR(15)", Block_Date = "datetime", Claim_Processed_Date = "datetime", Status ="VARCHAR(100)")
. - J'ai ensuite mis à jour mes types de classe de trame de données en utilisant
as.character
etas.Date
pour correspondre aux types de données répertoriés ci-dessus. - J'ai déjà créé la table car j'y travaille depuis des heures, j'ai donc dû supprimer la table en utilisant
sqlDrop(myconn2, "##R_Claims_Data")
. - J'ai ensuite exécuté :
sqlSave(myconn2, MainClmDF2, tablename = "##R_Claims_Data", verbose=TRUE, rownames= FALSE, varTypes=columnTypes)
Puis ma tête est tombée parce que ça a marché ! J'espère vraiment que cela aidera quelqu'un à aller de l'avant. Voici les liens qui m'ont aidé à en arriver là :