【问题标题】:RJDBC, Java connection to Oracle database crashingRJDBC,与 Oracle 数据库的 Java 连接崩溃
【发布时间】:2016-12-04 14:59:38
【问题描述】:

我有一个脚本,其中包含一些代码以启动与 Oracle 数据库的连接,但是该代码在 RStudio 运行后立即崩溃。之前在另一台机器上成功运行了确切的代码。

通过加载所需的 RJDBC 包打开脚本:

library("RJDBC", lib.loc="C:/R/library")

之后,我运行下面的代码:

drv = JDBC("oracle.jdbc.OracleDriver", classPath="C:/R/ojdbc7.jar", identifier.quote = " ")

但是这会使 Rstudio 崩溃 - 没有错误语句,程序只是崩溃,说明“R 遇到致命错误。会话已终止。”当我尝试在常规 R(不是 RStudio)的命令行中运行它时,它也会崩溃。

如果这是由 R 和机器之间的某些冲突引起的,有没有办法确定是什么原因造成的?

谢谢

【问题讨论】:

  • 尝试干净的 R Studio 会话,删除任何 .Rhistory 或 .RData。此外,通过在命令行运行脚本进行检查:Rscript c:/path/to/script.R 最终可能会引发特定错误。
  • 另外,您的 identifier.quote 参数是空格是否有原因? NA 是默认值。我相信 Oracle 使用双引号作为标识符,尝试使用反斜杠转义:\"?
  • 我一直在运行一个干净的会话,在加载库之前,我有一行清除工作区,我还清除了历史记录。我的同事正在另一台机器上运行完全相同的代码,而不会在那条线上崩溃。此外,当我在常规 R(不是 Rstudio)中运行脚本时,运行该行后也会立即崩溃!

标签: java r oracle crash rjdbc


【解决方案1】:

我刚刚将我的 Java 发行版从 v6 升级到 v8(Java Runtime 和 Java Developer Kit,在 Windows 7 上运行)时遇到了完全相同的问题。我不知道原因是什么,但是在重新安装 v6(并保留 v8)之后,问题得到了解决。

【讨论】:

  • 非常感谢!我有 V8 - 我下载了 V6(运行时和开发工具包),重新启动后我尝试运行代码并且它已经工作了。想知道为什么V8和R会发生冲突,也许有一天我们会发现!再次感谢!
【解决方案2】:

我也遇到了这个问题,但在我的情况下,问题是我之前在 ~/.Renviron 中设置的 JAVA_HOME 与安装 rJava 时的版本不匹配。在我的情况下,只需删除 JAVA_HOME 即可解决。

【讨论】:

    【解决方案3】:

    我在尝试连接 SQL Server 时也遇到了同样的崩溃。

    按照https://www.r-bloggers.com/connecting-r-to-an-oracle-database-with-rjdbc/ 的描述设置 JAVA_HOME 变量,崩溃就消失了:

    Sys.setenv(JAVA_HOME='C:/Program Files/Java/jdk1.8.0_172')
    library(RJDBC)
    drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
    "c:/Microsoft JDBC Driver 6.4 for SQL Server/sqljdbc_6.4/enu/mssql-jdbc-6.4.0.jre8.jar")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-08
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多