我被困在这个问题上已经有几天了.我找不到可能的问题。我在聚光灯下使用R。我正在尝试将数据帧的结果插入到sql server 2014表中。这是我使用的一个例子:
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)
我知道这个错误:
返回了一个错误:“.loadNamespaceImpl中的错误(包、路径、keep.source、部分):从从P:/TERR/x86_64-pc-library.dynam/4.2中加载的包' rlang‘执行useDynLib时出错(chname= chname,package = package,lib.loc =.:外来二进制rlang无法加载”。
谢谢!
发布于 2018-08-14 17:23:21
请遵循这里建议的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")
如果有帮助,请告诉我。
发布于 2018-08-15 11:48:09
由于insert仅限于1000行,所以可以从rsqlserver包中提取dbBulkCopy。
dbBulkCopy是一个DBI扩展,它将Microsoft流行的命令行实用程序bcp接口起来,快速将大型文件批量复制到表中。例如:
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)
发布于 2018-08-16 04:57:44
我试过了,终于成功了
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)
https://stackoverflow.com/questions/51849519
复制