使用 ODB 将 R 连接到打开的 office 数据库

Posted

技术标签:

【中文标题】使用 ODB 将 R 连接到打开的 office 数据库【英文标题】:Connecting R to open office database using ODB 【发布时间】:2017-01-22 20:10:56 【问题描述】:

尽管经过多次努力,我还是无法在 R 中的开放式办公数据库中读取我的表格。

我已经加载了 ODB 包。并使用命令连接

con <- odb.open('Database.odb')

连接 当我使用命令时

odb.tables(con)

控制台显示以下内容

$Datasets
    field.name field.type data.type comment
1           ID    INTEGER   numeric    <NA>
2 Dataset_naam    VARCHAR character    <NA>
3 Beschrijving    VARCHAR character    <NA>
4     Eigenaar    VARCHAR character    <NA>
5      Cluster       CHAR character    <NA>
6   Vindplaats    VARCHAR character    <NA>

看起来很有希望,但是当我尝试像这样实际访问表格时

odb.read(con, 'SELECT * FROM Datasets')

抛出以下错误。

Error: Error while executing SQL query  : "Unable to retrieve JDBC `result set for SELECT * FROM Datasets (Table not found in statement [SELECT * FROM Datasets])"`

为什么我不能访问表格?

另一方面,如果我尝试创建表,当我打开打开的 office 数据库时它们不会显示。

任何建议将不胜感激。

【问题讨论】:

你用的是什么库?请包括所有图书馆行。 看来您需要在 SELECT 语句中的表名周围使用双引号。 我用的是ODB包。 (这会自动加载 DBI、rJava 和 RJDBC)。但弗雷特是对的!需要使用双引号(我使用了单引号和不引号)。我非常感谢你们的遮阳篷,我真的很高兴我终于可以连接到我的数据库了! 【参考方案1】:

你必须写一个表的名字。请尝试以下操作:

odb.read(con, 'SELECT * FROM Cluster')

【讨论】:

您的回答是 OP 所说的他们尝试过的完全复制品。 odb.read(con, 'SELECT * FROM Cluster')odb.read(con, 'SELECT * FROM Datasets') 有何不同? 对不起。我犯了一个错误【参考方案2】:

你应该试试这个……

print(odb.read(con, "SELECT * FROM Datasets"))

【讨论】:

以上是关于使用 ODB 将 R 连接到打开的 office 数据库的主要内容,如果未能解决你的问题,请参考以下文章

ODBC 从 R 连接到网络驱动器上的 Access DB .accdb 文件

arcgis连接到数据库失败是啥原因?如何解决?

将 ucma 3.0 连接到 Office 365

R-无需打开文本编辑器即可连接到文本文件

从 docker 连接到 office365 SMTP 时出现异常

通过 EWS API 连接到 Office 365