【问题标题】:Error Creating DBI Driver to Start JDBC Connection to Teradata From R创建 DBI 驱动程序以从 R 启动到 Teradata 的 JDBC 连接时出错
【发布时间】:2016-07-26 00:01:02
【问题描述】:

我已使用以下代码从 R 成功连接到 Teradata:

library(DBI)
library(rJava)
library(RJDBC)
library(teradataR)

drv = JDBC("com.teradata.jdbc.TeraDriver","/Users/me/R_repos/TeraJDBC_indep_indep.14.10.00.26/terajdbc4.jar:/Users/me/R_repos/TeraJDBC_indep_indep.14.10.00.26/tdgssconfig.jar")

但是它突然停止工作。我现在在运行上述JDBC 函数时收到此错误消息:

Error in .jfindClass(as.character(driverClass)[1]) : class not found

我没有以任何方式更改目录路径或 jar 文件。

当我运行 .jclassPath() 时,我看到我的 RJDBC jar 和 JAVA jar 正确加载:

[1] "/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/java"           "/Library/Frameworks/R.framework/Versions/3.2/Resources/library/RJDBC/java/RJDBC.jar"

除了我已经多次重新启动我的 R 会话并且最近还安装了 Caret 包之外,没有其他任何变化。我不明白为什么这会失败。

我在 Mac iOS 10.10.5 上运行 R version 3.2.2

【问题讨论】:

  • 可能是驱动文件的两个路径之间的拼写错误,你的问题中有一个冒号:,但必须有分号;
  • 同意@inscaven,我在使用drv = JDBC("com.teradata.jdbc.TeraDriver", "terajdbc4.jar;tdgssconfig.jar")时没有收到“找不到类”错误
  • 我在 Mac 上,所以我需要一个冒号而不是分号。我也尝试过分号,但仍然得到同样的错误。
  • 附带说明,我不确定为什么人们会选择错误的工具来做事。

标签: r jdbc


【解决方案1】:

您的 JVM 版本是否可能已更改?此错误的最常见原因之一是 JVM 不匹配。无论如何,运行

.jclassLoader()$setDebug(1L)

查看失败的实际原因。

然后运行

("java.lang.System")$getProperty("java.version")

检查您的 JVM 版本。

【讨论】:

    【解决方案2】:

    从此处下载 Teradata JDBC 驱动程序:

    https://downloads.teradata.com/download/connectivity/jdbc-driver

    jars=['/CorrectPath/tdgssconfig.jar','/CorrectPAth/terajdbc4.jar']

    解压并给出 jar 文件的新路径。它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      相关资源
      最近更新 更多