将 R DataFrame 插入 SQL 服务器 Table

Insert R DataFrame into SQL Server Table

我已经坚持了几天了...我找不到问题所在。我在 Spotfire 中使用 R。我正在尝试将数据帧的结果插入 sql 服务器 2014 table。这是我正在使用的示例:

install.packages("ODBC")
install.packages("DBI")


library(DBI)
library(odbc)

con <- dbConnect(odbc(),
             Driver = "SQL Server",
             Server = "ServerName",
             Database = "DatabaseName",
             UID = "UserName",
             PWD = "Password")
dbWriteTable(conn = con, 
         name = "SQlServerTableDestinationName", 
         value = Datatable)

我收到这个错误:

TIBCO Enterprise Runtime for R returned an error: 'Error in .loadNamespaceImpl(package, path, keep.source, partial) : error executing useDynLib for dynamic library 'rlang' from package 'rlang' loaded from P:/TERR/x86_64-pc-windows-library/4.2 : Error in library.dynam(chname = chname, package = package, lib.loc = ... : Foreign binary rlang could not be loaded'.

谢谢!

请遵循此处建议的 TIBCO 社区解决方案:https://community.tibco.com/wiki/tibcor-enterprise-runtime-r-fast-writeback-sql-server-2016

在你的情况下,它会像下面这样:

dbcon <- RODBC::odbcDriverConnect(connection_string )
RODBC::sqlSave(dbcon, dat =  dataf, "SQlServerTableDestinationName")

如果有帮助请告诉我

由于 insert INTO 限制为 1000 行,您可以从 rsqlserver 包中进行 dbBulkCopy。

dbBulkCopy 是一个 DBI 扩展,它与 Microsoft SQL 服务器流行的名为 bcp 的命令行实用程序相连接,可以快速将大文件批量复制到 table。例如:

url = "Server=localhost;Database=TEST_RSQLSERVER;Trusted_Connection=True;"
conn <- dbConnect('SqlServer',url=url)
## I assume the table already exist
dbBulkCopy(conn,name='T_BULKCOPY',value=df,overwrite=TRUE)
dbDisconnect(conn)

我试过了,终于成功了

install.packages("RODBC")
library(RODBC)

dbcon <- RODBC::odbcDriverConnect('driver={SQL    Server};server=ServerName;database=DatabaseName;uid=UserName;pwd=Password' )
sqlSave(dbcon, DataFrame, "SQLServerName", verbose=TRUE, fast=TRUE, append=TRUE, rownames = FALSE)