使用 dbplyr 进行多数据库合并

Using dbplyr for multiple database merging

我在 SQL 服务器中的数据库引擎由 2 个数据库组成。我想要一些来自两个不同数据库的联合 tables,但到目前为止我不能。

这是我尝试过的方法;

library(odbc)
library(dbplyr)

con <- dbConnect(odbc(),driver='SQL Server',server = 'myserver',database='db1',encoding='windows-1254')

table1 <- tbl(con,in_schema('db1.dbo','abc'))

table2 <- tbl(con,in_schema('db2.dbo','cde'))

因此,它会引发错误;

[SQL Server]Invalid object name 'db1.dbo.abc'.  [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. 

但是这个看起来 table 的链接工作正常;

table1 <- tbl(con,in_schema('dbo','abc'))

它之所以有效,是因为我已经在连接对象中指定了数据库,但现在我想使用具有相同连接但来自另一个数据库的 table。我无法声明一个新的连接,当我这样做时,它会复制 tables 这将与我的本地连接并且需要很长时间。

我不应该编写本机 SQL 查询而不是 dbplyr 并使用一个连接对象。

提前致谢。

在尝试使用 con for db1 达到 db2[= 时,您应该能够将架构值和 table 值包装在 dplyr::sql() 中15=]

table1 <- tbl(con,in_schema('dbo','abc'))
table2 <- tbl(con,in_schema(dplyr::sql('db2.dbo'),dplyr::sql('cde')))