Depois de horas trabalhando nisso, finalmente consegui fazer o sqlSave funcionar enquanto especificava o nome da tabela - respiração profunda, por onde começar. Aqui está a lista de coisas que eu fiz para que isso funcionasse:
- Abra o Administrador ODBC de 32 bits, crie um DSN de usuário e configure-o para seu banco de dados específico. No meu caso, estou criando uma tabela temporária global, então vinculei ao tempdb. Use este nome de conexão em seu
odbcConnection(Name)
. Aqui está meu códigomyconn2 <- odbcConnect("SYSTEMDB")
. - Depois defini meus tipos de dados com o seguinte código:
columnTypes <- list(Record = "VARCHAR(10)", Case_Number = "VARCHAR(15)", Claim_Type = "VARCHAR(15)", Block_Date = "datetime", Claim_Processed_Date = "datetime", Status ="VARCHAR(100)")
. - Atualizei meus tipos de classe de quadro de dados usando
as.character
eas.Date
para corresponder aos tipos de dados listados acima. - Eu já criei a tabela desde que estou trabalhando nela há horas, então tive que descartar a tabela usando
sqlDrop(myconn2, "##R_Claims_Data")
. - Em seguida, executei:
sqlSave(myconn2, MainClmDF2, tablename = "##R_Claims_Data", verbose=TRUE, rownames= FALSE, varTypes=columnTypes)
Então minha cabeça caiu porque funcionou! Eu realmente espero que isso ajude alguém daqui para frente. Aqui estão os links que me ajudaram a chegar a este ponto:
Tabela não encontrada
sqlSalvar em R
RODBC