使用 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 文件