使用RODBC包将数据框导出到SQL Server

时间:2014-01-23 08:00:43

标签: sql sql-server r rodbc

我在R中使用RODBC包来从SQL Server数据库导入/导出数据帧。虽然导入没有问题。我不知道如何将数据框的内容导出到现有的SQL表中。

我正在尝试使用包中提供的sqlQuery()函数,但我不确定如何在表中插入多个记录。

有关如何插入行的示例将很有帮助 我确保我的表和数据框的列是相同的。

4 个答案:

答案 0 :(得分:3)

sqlSave与附加属性一起使用。请参阅下面的代码:

 sqlSave(uploaddbconnection, outputframe, tablename =
    "your_TableName",rownames=FALSE, append = TRUE)

答案 1 :(得分:2)

这是我使用sqlSave()的代码。我正在使用SQL Server 2008. Conn是我使用odbcConnect()

创建的连接
#creating data to be saved in SQL Table
data_to_save<-cbind(scenario_1,scenario_2,scenario_3,scenario_4,store_num,future_date,Province,index)

#use sqlSave() rather than sqlQuery() for saving data into SQL Server
sqlSave(conn,data.frame(data_to_save),"CC_Forecast",safer=FALSE,append=TRUE)

答案 2 :(得分:1)

dbWriteTable(conn, "RESULTS", results2000, append = T)

使用DBI包

答案 3 :(得分:0)

我想补充一下严的回答。

在使用sqlSave()函数之前,请确保将默认数据库更改为表所在的正确数据库。特别是如果你想写一个现有的表!

See here:了解如何设置ODBC连接以及如何更改默认数据库。

之后,您可以使用它们将数据转储到sql:

specificDB= odbcConnect(dsn ='name you set up in ODBC',uid = '***', pwd = '****')

sqlSave(specificDB, output_to_sql, tablename = 'a_table_in_specificDB', rownames = F,append = T)

close(specificDB)

很慢。耐心点。