我有一个问题,使用ROracle从数据库中获取一些数据.一切都很完美(我从不同的表中获取数据没有任何问题),但其中一个表抛出一个错误:
library(ROracle)
con <- dbConnect(dbDriver("Oracle"),"xxx/x",username="user",password="pwd")
spalten<- dbListFields(con, name="xyz", schema = "x") # i still get the name of the columns for this table
rs <- dbSendQuery(con, "Select * From x.xyz") # no error
data <- fetch(rs) # this line throws an error
dbDisconnect(con)
Run Code Online (Sandbox Code Playgroud)
Fehler in .valueClassTest(ans,"data.frame","fetch"):来自泛型函数'fetch'的无效值,类"try-error",期望"data.frame"
我遵循了这个问题:在stackoverflow上,我选择了列
rs <- dbSendQuery(con, "Select a From x.xyz")
Run Code Online (Sandbox Code Playgroud)
但没有一个工作,并给了我同样的错误.
有什么想法我做错了什么?
PS我已经检查了Oracle SQL Developer中的sql查询,我确实得到了数据表
更新:
如果有人可以帮我找到/查询我的Oracle错误日志,那么也许我可以通过麻烦的查询找出数据库服务器上实际发生的情况.
这仅用于调试目的。尝试在以下tryCatch构造中运行您的代码。它将显示正在发生的所有警告和错误。
result <- tryCatch({
con <- dbConnect(dbDriver("Oracle"),"xxx/x",username="user",password="pwd")
spalten <- dbListFields(con, name="xyz", schema = "x")
rs <- dbSendQuery(con, "Select * From x.xyz") # no error
data <- fetch(rs) # this line throws an error
dbDisconnect(con)
}, warning = function(war) {
print(paste("warning: ",war))
}, error = function(err) {
print(paste("error: ",err))
})
print(paste("result =",result))
Run Code Online (Sandbox Code Playgroud)