将 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)
我已经坚持了几天了...我找不到问题所在。我在 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)