ROracle 的使用在 .oci.fetch(res, as.integer(n)) 中产生错误:ORA-01805:
Usage of ROracle generates Error in .oci.fetch(res, as.integer(n)) : ORA-01805:
我使用 ROracle 来增强从 Oracle 到 R 的数据读取。
PC 和 OS 规格: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)
但是出现了一些错误:
Error in .oci.fetch(res, as.integer(n)) : ORA-01805: ....
重点是错误不是永久性的。有时会出现,有时不会出现,脚本是 运行 好的。
我将非常感谢您对这种情况的帮助。
可能你有不同的 TZ (server\client) 试试
dbGetQuery(con,"SELECT SESSIONTIMEZONE,DBTIMEZONE FROM dual")
SESSIONTIMEZONE 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")
SESSIONTIMEZONE DBTIMEZONE
1 +04:00 +04:00
说不定能帮到你
在数据库管理员的帮助下,我通过将 oracle 客户端重新安装到相同 64 位当前服务器的最新版本解决了这个问题。并设置最新版本的ROracle包(如何安装ROracle详见gist.github.com/jgilfillan/7b0281067ed9feb4a71c).
我使用 ROracle 来增强从 Oracle 到 R 的数据读取。 PC 和 OS 规格: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)
但是出现了一些错误:
Error in .oci.fetch(res, as.integer(n)) : ORA-01805: ....
重点是错误不是永久性的。有时会出现,有时不会出现,脚本是 运行 好的。 我将非常感谢您对这种情况的帮助。
可能你有不同的 TZ (server\client) 试试
dbGetQuery(con,"SELECT SESSIONTIMEZONE,DBTIMEZONE FROM dual")
SESSIONTIMEZONE 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")
SESSIONTIMEZONE DBTIMEZONE
1 +04:00 +04:00
说不定能帮到你
在数据库管理员的帮助下,我通过将 oracle 客户端重新安装到相同 64 位当前服务器的最新版本解决了这个问题。并设置最新版本的ROracle包(如何安装ROracle详见gist.github.com/jgilfillan/7b0281067ed9feb4a71c).