我尝试使用RStudio从MySQL数据库中的视图访问数据。当我连接到数据库时,它会在连接窗口中显示所有视图的名称。我甚至可以使用dbListTables()
函数返回每个视图的名称。
但是,当我尝试运行tbl()
函数时,我得到以下错误:
Error: nanodbc/nanodbc.cpp:1655: HY000: [MySQL][ODBC 8.0(a) Driver][mysqld-5.5.5-10.3.34-
MariaDB-log]Prepared statement needs to be re-prepared
<SQL> 'SELECT *
FROM `database_view` AS `q01`
WHERE (0 = 1)'
字符串
以下是我下载的软件包:
library(tidyverse)
library(dbplyr)
library(DBI)
library(odbc)
型
下面是我的tbl()
代码:
tbl(con, "database_view")
型
下面是我的连接代码(我用括号中的占位符替换了实际值):
con <- DBI::dbConnect(odbc::odbc(),
Driver = "MySQL ODBC 8.0 ANSI Driver",
Server = "[Server]",
UID = "[UID]",
PWD = "[PWD]",
Port = 3306,
Database = "[Database]")
型
任何帮助将不胜感激!
1条答案
按热度按时间uqdfh47h1#
看起来这和你为
DBI
包使用的后端有关。RMariaDB::MariaDB()
后端似乎不能处理视图。幸运的是,RMySQL::MySQL()
可以工作,所以你应该可以使用它。既然你是用ODBC设置的,我猜你使用的是Maria DB ODBC驱动程序。如果你重新配置你的ODBC连接使用MySQL driver,它应该能解决这个问题。
或者,直接连接到数据库会少一点工作量。你可以安装
RMySQL
包并使用下面的代码。字符串