无法从 R 查询 Oracle 表 - “Could not SQLExecDirect”错误

Posted

技术标签:

【中文标题】无法从 R 查询 Oracle 表 - “Could not SQLExecDirect”错误【英文标题】:Can't query Oracle tables from R - "Could not SQLExecDirect" error 【发布时间】:2017-09-25 14:24:25 【问题描述】:

我创建了一个连接:

library(RODBC)

pswd <- readline("Input Password: ")

channel<-odbcConnect (dsn="dsn",uid="uid",pwd=pswd,believeNRows=FALSE)

我可以得到一个表格列表

tables <- sqlTables(channel, schema="SYSADM")

但是当我尝试查询其中一张表时

query <- "select * from SYSADM.TABLE1"
dataframe <- sqlQuery(channel,query)  

我明白了:

"[RODBC] 错误:无法 SQLExecDirect 'SELECT * FROM \"TABLE1\"'"

我确实有权访问此表,并且能够使用 Toad 对其进行查询。 可能是什么问题?

【问题讨论】:

数据框 遇到同样的错误 【参考方案1】:

请进行如下更改,然后尝试以下查询:

tables <- sqlTables(channel, schema='SYSADM')

查询:

 dataframe <- sqlQuery(channel,"select * from SYSADM.TABLE1")

或者

query <- paste("select * from SYSADM.TABLE1")

dataframe <- sqlQuery(channel,"select * from SYSADM.TABLE1")

希望对你有帮助!

【讨论】:

谢谢你,Harshil,但这正是我想做的事情。 所以它起作用了,对吧?如果答案有助于解决您的问题,请投票和/或接受答案。这对新访客会有帮助。 对不起,但当我说这与我尝试过的相同时,这意味着没有帮助。您确实提供了与我在问题中相同的代码。 你确定你的桌子不是空的吗?因为这也可能是一个原因。 不是,我可以通过 Toad 查询。会不会有一些管理权限只在 R (RODBC) 级别强制执行?

以上是关于无法从 R 查询 Oracle 表 - “Could not SQLExecDirect”错误的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE SQL 查询从其他表中的行字符串匹配的行返回值

Oracle 8i - 无法从子查询中引用外部表

10046确认多块读无法跨区

查询未拉入选择框值,oracle

ORACLE怎么用SQL查询多张表和多个时间点的数据的行数?

CodeSmith无法获取Oracle表注释