0

我使用 ROracle 来增强从 Oracle 到 R 的数据读取。PC 和操作系统规格:i5、8Gb、Win7 64 位、Oracle 12c(客户端 64 位)、R(64 位、3.2.2)、Rstudio

当前代码原样:

>install.packages('ROracle_1.1-12.zip', repos = NULL)
>library('ROracle')
>drv <- dbDriver("Oracle")
>con <- dbConnect(drv, "USER", "PASSWORD", dbname='DB')
>x<-dbSendQuery(con, "SELECT * FROM MY_TABLE")
>y<-fetch(x)

但是出现了一些错误:

.oci.fetch(res, as.integer(n)) 中的错误:ORA-01805: ....

关键是错误不是永久性的。有时它会出现,有时它不会出现,并且脚本运行正常。我将非常感谢您对此类案件的帮助。

4

2 回答 2

0

可能是你有不同的 TZ(服务器\客户端)试试

dbGetQuery(con,"SELECT SESSIONTIMEZONE,DBTIMEZONE FROM dual")

会话时区 DBTIMEZONE

1 +03:00 +04:00

如果你有不同的值改变 TZ

dbSendQuery(con,"ALTER SESSION SET TIME_ZONE = '+4:0'")
dbCommit(conn = con)

dbGetQuery(con,"SELECT SESSIONTIMEZONE,DBTIMEZONE FROM dual")

会话时区 DBTIMEZONE

1 +04:00 +04:00

也许它可以帮助你

于 2015-11-16T11:32:53.277 回答
0

在数据库管理员的帮助下,我通过将 oracle 客户端重新安装到当前相同 64 位服务器的最新版本解决了这个问题。并设置最新版本的 ROracle 包(如何安装 ROracle 详见 gist.github.com/jgilfillan/7b0281067ed9feb4a71c)。

于 2016-01-22T14:09:31.150 回答