第一个论点不是一个开放的RODBC频道
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个论点不是一个开放的RODBC频道相关的知识,希望对你有一定的参考价值。
我通过DNS连接到Oracle数据库(在tnsnames.ora上设置名为“database”的连接)。
我能够成功运行以下代码:
con <- DBI::dbConnect(odbc::odbc(),
"database",
UID = "user",
PWD = "password",
trusted_connection = TRUE)
我还能够通过以下方式成功列出数据库中的所有表:
list <- dbListTables(con)
View(list)
但是,当我跑:
results <- sqlQuery(channel = con, query = "select * from myschemaname.table")
我收到错误:
Error in sqlQuery(channel = con, query = "select * from myschemaname.table") :
first argument is not an open RODBC channel
我拥有所有者权限,我还能够通过ODBC更新连接到此数据库的Excel Spreadsheets。如果它有用,这是str(con)的输出
str(con)
Formal class 'Oracle' [package ".GlobalEnv"] with 4 slots
..@ ptr :<externalptr>
..@ quote : chr "\""
..@ info :List of 13
.. ..$ dbname : chr ""
.. ..$ dbms.name : chr "Oracle"
.. ..$ db.version : chr "11.02.0040"
.. ..$ username : chr "user"
.. ..$ host : chr ""
.. ..$ port : chr ""
.. ..$ sourcename : chr "database"
.. ..$ servername : chr "database"
.. ..$ drivername : chr "SQORA32.DLL"
.. ..$ odbc.version : chr "03.80.0000"
.. ..$ driver.version : chr "11.02.0001"
.. ..$ odbcdriver.version : chr "03.52"
.. ..$ supports.transactions: logi TRUE
.. ..- attr(*, "class")= chr [1:3] "Oracle" "driver_info" "list"
..@ encoding: chr ""
答案
您正在使用RODBC::sqlQuery()
进行与DBI::dbConnect()
相关的连接。要么使用DBI::dbGetQuery()
和DBI::dbConnect()
,要么与RODBC::odbcConnect()
建立连接,并使用RODBC::sqlQuery()
。
另一答案
所以我有这样的东西连接到SQL Server数据库。最后我不得不将Trusted_Connection = TRUE更改为Trusted_Connection = Yes ...
以上是关于第一个论点不是一个开放的RODBC频道的主要内容,如果未能解决你的问题,请参考以下文章