首页 > 解决方案 > Rstudio Connections 选项卡无法帮助我在代码中引用对象名称

问题描述

我可以看到一个对象,但我不能在代码中引用它:

library(odbc)
library(DBI)
library(tidyverse)
library(readr)

con <- dbConnect(odbc::odbc(),
                 driver = "libtdsodbc.so",
                 database = "AdventureWorks2012",
                 uid = "sqlfamily",
                 pwd = "sqlf@m1ly",
                 Server = "mhknbn2kdz.database.windows.net",
                 port = 1433)

# dbListTables(con)  # commented out because the output is long...

Department <- dbReadTable(con, "AdventureWorks2012.HumanResources.Department")

这是我在 Rstudio 中看到的:

显示表格的 Rstudio 连接选项卡

还有数据可供查看:

在此处输入图像描述

但是,以下命令尝试会产生错误:

> person <- dbReadTable(con, "Person.Person")
Error: <SQL> 'SELECT * FROM "Person.Person"'
  nanodbc/nanodbc.cpp:1587: 42S02: [FreeTDS][SQL Server]Invalid object name 'Person.Person'. 
> person <- dbReadTable(con, "Person.Contact")
Error: <SQL> 'SELECT * FROM "Person.Contact"'
  nanodbc/nanodbc.cpp:1587: 42S02: [FreeTDS][SQL Server]Invalid object name 'Person.Contact'. 
> person <- dbReadTable(con, "Sales.SalesPerson")
Error: <SQL> 'SELECT * FROM "Sales.SalesPerson"'
  nanodbc/nanodbc.cpp:1587: 42S02: [FreeTDS][SQL Server]Invalid object name 'Sales.SalesPerson'. 
> person <- dbReadTable(con, "Sales.Customer")
Error: <SQL> 'SELECT * FROM "Sales.Customer"'
  nanodbc/nanodbc.cpp:1587: 42S02: [FreeTDS][SQL Server]Invalid object name 'Sales.Customer'. 
> Department <- dbReadTable(con, "AdventureWorks2012.HumanResources.Department")
Error: <SQL> 'SELECT * FROM "AdventureWorks2012.HumanResources.Department"'
  nanodbc/nanodbc.cpp:1587: 42S02: [FreeTDS][SQL Server]Invalid object name 'AdventureWorks2012.HumanResources.Department'. 
> 

我应该如何引用该表?我想使用 dplyr 但会满足于编写直接的 SQL 查询。

标签: rodbc

解决方案


正如Scarabee建议的那样,这很有效:

dbReadTable(con, Id(schema = "Person", table = "Person"))


推荐阅读