【发布时间】:2014-02-13 16:00:29
【问题描述】:
我在 R 中使用 RODBC 包从 SQL Server 数据库导入/导出数据帧。虽然导入没有问题。我不知道如何将数据框的内容导出到现有的 SQL 表中。
我正在尝试使用包中提供的sqlQuery() 函数,但我不确定如何在表中插入多条记录。
有关如何插入行的示例会有所帮助 我已确保我的表格和数据框的列是相同的。
【问题讨论】:
标签: sql sql-server r rodbc
我在 R 中使用 RODBC 包从 SQL Server 数据库导入/导出数据帧。虽然导入没有问题。我不知道如何将数据框的内容导出到现有的 SQL 表中。
我正在尝试使用包中提供的sqlQuery() 函数,但我不确定如何在表中插入多条记录。
有关如何插入行的示例会有所帮助 我已确保我的表格和数据框的列是相同的。
【问题讨论】:
标签: sql sql-server r rodbc
这是我使用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)
【讨论】:
sqlQuery() 是一个更通用的函数,它逐行插入数据框,如果您的数据框列是表的子集,sqlSave() 也不起作用
dbWriteTable(conn, "RESULTS", results2000, append = T)
使用 DBI 包
【讨论】:
我想补充一下严的回答。
在使用 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)
速度很慢。耐心点。
【讨论】:
将sqlSave 与附加属性一起使用。请参阅下面的代码:
sqlSave(uploaddbconnection, outputframe, tablename =
"your_TableName",rownames=FALSE, append = TRUE)
【讨论】: