使用RODBC包将数据帧导出到SQL server
我正在使用R中的使用RODBC包将数据帧导出到SQL server,sql,sql-server,r,rodbc,Sql,Sql Server,R,Rodbc,我正在使用R中的RODBC包从SQL Server数据库导入/导出数据帧。虽然进口没有问题。我不知道如何将数据帧的内容导出到现有的SQL表中 我试图使用包中可用的sqlQuery()函数,但我不确定如何在表中插入多条记录 关于如何插入行的示例将非常有用 我已确保表和数据框的列是相同的。这是我使用sqlSave()的代码。我正在使用SQLServer2008Conn是我使用odbcConnect()创建的连接: #创建要保存在SQL表中的数据 要保存的数据 使用DBI软件包我想补充一下Yan的答案
RODBC
包从SQL Server数据库导入/导出数据帧。虽然进口没有问题。我不知道如何将数据帧的内容导出到现有的SQL表中
我试图使用包中可用的sqlQuery()
函数,但我不确定如何在表中插入多条记录
关于如何插入行的示例将非常有用
我已确保表和数据框的列是相同的。这是我使用
sqlSave()
的代码。我正在使用SQLServer2008Conn
是我使用odbcConnect()
创建的连接:
#创建要保存在SQL表中的数据
要保存的数据
使用DBI软件包我想补充一下Yan的答案
在使用sqlSave()函数之前,请确保将默认数据库更改为表所在的正确数据库。特别是如果您想写入现有表
了解如何设置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
与append属性一起使用。请参见下面的我的代码:
sqlSave(uploaddbconnection, outputframe, tablename =
"your_TableName",rownames=FALSE, append = TRUE)
谢谢严。我知道这个函数,但在数据帧相当大的情况下,它会抛出错误sqlQuery()
是一个更通用的函数,它逐行插入数据框,如果数据框列是表的子集,则sqlSave()
也不起作用
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(uploaddbconnection, outputframe, tablename =
"your_TableName",rownames=FALSE, append = TRUE)