提问人:Hack-R 提问时间:1/16/2019 最后编辑:Hack-R 更新时间:1/17/2019 访问量:427
使用 odbc::d bWriteTable() 函数写入预期的数据库位置
Write to intended DB location with odbc::dbWriteTable() function
问:
库中存在类似错误的现象,多年来一直是较旧、较慢的库的已知问题,但是 的解决方法似乎不适用于 .odbc
RODBC
RODBC
odbc
问题:
很多时候,人们可能希望从二维 R 对象创建 SQL 表。在本例中,我使用 SQL Server(即 T-SQL)执行此操作。用于身份验证的帐户(例如“”)可能与将包含正在创建的表的数据库的所有者和创建者不同,但该帐户对目标数据库具有完全读/写权限。sysadmin-account
这样做的调用是这样的,并且“成功”运行odbc()
library(odbc)
db01 <- odbc::dbConnect(odbc::odbc(), "UserDB_odbc_name")
odbc::dbWriteTable(db01, "UserDB.dbo.my_table", r_data)
这将连接并创建一个表,但不是在 UserDB.dbo.my_table
的预期位置创建表,而是在 UserDB.sysadmin-account.dbo.my_table
中创建表。
从技术上讲,是数据库的子级。这样做的目的是创建一个新的子对象,该子对象具有自己的子对象,然后在其中创建表。.dbo
UserDB
UserDB
sysadmin-account
.dbo
对于其他一些库/语言,我们发现一种解决方法是在调用中将对目标表位置的引用更改为“”,或者在某些情况下更改为“”。此外,我认为运行查询有时用于帮助.RODBC
.dbo.my_table
..dbo.my_table
use UserDB
RODBC
这些解决方案似乎都对 没有任何影响。odbc()
更新
- 尝试将该库作为潜在的替代品,但无济于事
DBI
- 找到了将数据发送到全局临时表,然后使用 SQL 语句从临时表复制到预期位置的解决方法
答: 暂无答案
评论
RSQLServer
odbc()
library(DBI)
odbc
RODBC
DBI
odbc
database
dbConnect
con <- dbConnect(odbc(), Driver = "SQLServer", Server = "mysqlhost", Database = "mydbname", UID = "myuser", PWD = "password", Port = 1433)