【发布时间】:2020-02-05 22:13:47
【问题描述】:
从 R Studio 的 ODBC database documentation 我可以看到如何将 SQL 表读入 R 数据框的简单示例:
data <- dbReadTable(con, "flights")
让我将我正在尝试读取的BGBUref 表(?)的图形粘贴到 R 数据框。这是来自我在 R 工作室中的连接窗格。
如果我使用与上面相同的语法,其中con 是我的dbConnect(...) 的输出,我会得到以下信息:
df <- dbReadTable(con, "BGBURef")
#> Error: <SQL> 'SELECT * FROM "BGBURef"' nanodbc/nanodbc.cpp:1587: 42S02:
#> [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name
#> 'BGBURef'.
我对什么是“表格”的理解不正确吗?还是我需要做这样的事情才能到达嵌套的BGBUref 表:
df <- dbReadTable(con, "QnRStore\dbo\BGBURef")
#> Error: '\d' is an unrecognized escape in character string starting ""QnRStore\d"
如果我单击小电子表格图标,BGBUref 数据框将出现在 R Studio 中。我只是不知道如何将其放入定义的数据框中,在我的情况下为df。
这是我运行这些命令时的输出:
df <- dbReadTable(con, "QnRStore")
#> Error: <SQL> 'SELECT * FROM "QnRStore"'
#> nanodbc/nanodbc.cpp:1587: 42S02: [Microsoft][ODBC Driver 17 for SQL
#> Server][SQL Server]Invalid object name 'QnRStore'.
和:
dbListTables(con)
#> [1] "spt_fallback_db"
#> [2] "spt_fallback_dev"
#> [3] "spt_fallback_usg"
#> [4] "spt_monitor"
#> [5] "trace_xe_action_map"
#> [6] "trace_xe_event_map"
#> [7] "spt_values"
#> [8] "CHECK_CONSTRAINTS"
#> [9] "COLUMN_DOMAIN_USAGE"
#> [10] "COLUMN_PRIVILEGES"
#> ...
#> [650] "xml_schema_types"
#> [651] "xml_schema_wildcard_namespaces"
#> [652] "xml_schema_wildcards"
【问题讨论】:
-
QnRStore应该是dbConnect函数的输出。 -
@David Browne - Microsoft 感谢第一个提示。我刚刚更新了问题以反映这些变化。任何额外的输入?
-
这不是“嵌套”表。这是一个名为“BGBUref”的表,位于名为 QnRStore 的数据库的默认模式“dbo”中。您发布的错误仍然显示“找不到对象 'QnRStore'”。对吗?
-
dbListTables 输出什么?
-
那么您的 dbConnect 连接到错误的数据库。
标签: r sql-server odbc r-dbi dbplyr