无法从 RStudio 查询 Azure SQL 服务器
Unable to query Azure SQL Server from RStudio
我正在尝试从 RStudio 查询部署在 Azure 上的 SQL 服务器数据库。
我建立了连接。我可以看到所有表格并从 RStudio GUI 中预览数据。但是,当我尝试查询数据时出现错误。
library(dplyr)
library(odbc)
con <- dbConnect(odbc(),
Driver = "SQL Server",
Server = "#.database.windows.net",
Database = "loremipsum",
UID = "loremipsum",
PWD = "loremipsum",
Port = 1433)
我尝试的第一个查询:
users <- as.data.frame(sqlQuery(con, "SELECT * FROM AspNetUsers"))
我得到的错误:
Error in sqlQuery(con, "SELECT * FROM AspNetUsers") :
first argument is not an open RODBC channel
我也试过这个查询
result <- dbSendQuery(con, "SELECT * FROM AspNetUsers")
first_100 <- dbFetch(result, n = 100)
出现以下错误:
Error in result_fetch(res@ptr, n) :
nanodbc/nanodbc.cpp:2966: 07009: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index
这很奇怪,因为连接必须有效,因为它可以通过 GUI 访问数据。
有什么提示吗?
恭喜您解决了问题:
我最终通过切换到另一个库 - RODBC 解决了这个问题。这似乎是 odbc 处理字符列的方式中的一个错误:R DBI ODBC error: nanodbc/nanodbc.cpp:3110: 07009: [Microsoft][ODBC Driver 13 for SQL Server]Invalid Descriptor Index
我post将此作为答案,这可能对其他社区成员有益。
我正在尝试从 RStudio 查询部署在 Azure 上的 SQL 服务器数据库。
我建立了连接。我可以看到所有表格并从 RStudio GUI 中预览数据。但是,当我尝试查询数据时出现错误。
library(dplyr)
library(odbc)
con <- dbConnect(odbc(),
Driver = "SQL Server",
Server = "#.database.windows.net",
Database = "loremipsum",
UID = "loremipsum",
PWD = "loremipsum",
Port = 1433)
我尝试的第一个查询:
users <- as.data.frame(sqlQuery(con, "SELECT * FROM AspNetUsers"))
我得到的错误:
Error in sqlQuery(con, "SELECT * FROM AspNetUsers") :
first argument is not an open RODBC channel
我也试过这个查询
result <- dbSendQuery(con, "SELECT * FROM AspNetUsers")
first_100 <- dbFetch(result, n = 100)
出现以下错误:
Error in result_fetch(res@ptr, n) :
nanodbc/nanodbc.cpp:2966: 07009: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index
这很奇怪,因为连接必须有效,因为它可以通过 GUI 访问数据。
有什么提示吗?
恭喜您解决了问题:
我最终通过切换到另一个库 - RODBC 解决了这个问题。这似乎是 odbc 处理字符列的方式中的一个错误:R DBI ODBC error: nanodbc/nanodbc.cpp:3110: 07009: [Microsoft][ODBC Driver 13 for SQL Server]Invalid Descriptor Index
我post将此作为答案,这可能对其他社区成员有益。