【发布时间】: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 上,所以我需要一个冒号而不是分号。我也尝试过分号,但仍然得到同样的错误。
-
附带说明,我不确定为什么人们会选择错误的工具来做事。