使用 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')))
我在 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')))