sqlSave错误:找不到表

时间:2014-04-14 19:19:57

标签: sql r rodbc

我尝试使用以下代码将R数据帧保存回sql数据库:

    channel <- odbcConnect("db")
    sqlSave(db, new_data, '[mydb].[dbo].mytable', fast=T, rownames=F, append=TRUE)

但是,这会返回在通道&#34;上找不到的错误&#34;表,同时创建一个包含列名的空表。重新运行代码会返回错误&#34;已经有一个名为&#39; mytable&#39;在数据库&#34;。这继续循环 - 有人能发现错误吗?

3 个答案:

答案 0 :(得分:1)

这是关于您的数据集的样子吗?

MemberNum  x             t.x T.cal m.x T.star h.x h.m.x e.trans e.spend       
1          2.910165e+12  0   0     205 8.77   52  0     0       0.0449161  

我有几次这个确切的问题。它与在频道上找不到的表无关。根据我的经验,sqlSave在日期和科学记数法方面存在问题。尝试将x转换为因子:

new_data$x = as.factor(new_data$x)

然后是sqlSave。如果这不起作用,请尝试as.numeric甚至as.character(即使这不是您想要的格式。

答案 1 :(得分:0)

第一次尝试运行sqlTables(db)来检查数据库中的表及其正确的名称。 然后,您可以使用此函数返回值作为sqlSave(...)

的输入

答案 2 :(得分:0)

似乎您正在尝试写入SQL Server。如果在ODBC连接中指定数据库名称,然后将该表称为“ dbo.mytable”,则可能会有所帮助。