我试图通过RStudio连接到Teradata,但由于某些原因,JDBC函数在识别Java驱动程序所在的路径时遇到问题。请参见以下代码:
library(RODBC)
library(RJDBC)
library(rJava)
# both Java drivers definitely exist
file.exists('/Users/KULMAK/Documents/TeraJDBC__indep_indep.16.10.00.03/tdgssconfig.jar')
[1] TRUE
file.exists('/Users/KULMAK/Documents/TeraJDBC__indep_indep.16.10.00.03/terajdbc4.jar')
[1] TRUE
但当我在JDBC调用中粘贴这些路径时。。。
# allow more elaborated error messages to appear
.jclassLoader()$setDebug(1L)
drv = JDBC("com.teradata.jdbc.TeraDriver","/Users/KULMAK/Documents/TeraJDBC__indep_indep.16.10.00.03/tdgssconfig.jar;/Users/KULMAK/Documents/TeraJDBC__indep_indep.16.10.00.03/terajdbc4.jar")
。。。我得到以下错误:
RJavaClassLoader:已添加
'/Users/KULMAK/Documents/TeraJDBC\uu indep\u indep。2003年10月16日/tdgssconfig。罐子/用户/KULMAK/Documents/TeraJDBC\uu indep\u indep。16.10.00.03/terajdbc4。罐子'
到URL类路径加载器警告:路径
'
/用户/KULMAK/Documents/TeraJDBC\uu indep\u indep。2003年10月16日/tdgssconfig。罐子/用户/KULMAK/Documents/TeraJDBC\uu indep\u indep。16.10.00.03/terajdbc4。罐子'
不存在,将不会添加到内部类路径!
RJavaClassLoader:已添加
“/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/RJDBC/java/RJDBC。罐子'
到URL类路径加载器RJavaClassLoader:添加Java存档
文件
“/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/RJDBC/java/RJDBC。罐子'
到内部类路径
RJavaClassLoader@3d4eac69.findClass(com.teradata.jdbc.TeraDriver)
-URL加载程序找不到它:java。lang.ClassNotFoundException:com。teradata。jdbc。TeraDriver公司
RJavaClassLoader。findClass(“com.teradata.jdbc.TeraDriver”)
-正在尝试类路径“/库/框架/R.framework/版本/3.4/资源/库/rJava/java”
目录,可以获取
“/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/rJava/java/com/teradata/jdbc/TeraDriver。类'?
否
-正在尝试类路径“/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/RJDBC/java/RJDBC.jar”
JAR文件,是否可以获取“com/teradata/jdbc/TeraDriver”?否
ClassNotFoundException类
中出错。jfindClass(as.character(driverClass)[1]):找不到类
在R中运行相同的代码,而不是在RStudio中运行,会返回相同的错误。
此外,重新安装RJDBC包(如建议
here
)没有解决问题。
有人能解释为什么会这样吗?谢谢你的帮助。
以下是我的会话信息:
> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.3
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] devtools_1.13.4 RJDBC_0.2-7 rJava_0.9-9 DBI_0.8 RODBC_1.3-15
[6] dplyr_0.7.4 readr_1.1.1
loaded via a namespace (and not attached):
[1] Rcpp_0.12.15 bindr_0.1 magrittr_1.5 hms_0.3 R6_2.2.2
[6] rlang_0.1.6 httr_1.3.1 tools_3.4.1 git2r_0.19.0 withr_2.1.1.9000
[11] yaml_2.1.16 assertthat_0.2.0 digest_0.6.15 tibble_1.4.2 bindrcpp_0.2
[16] curl_3.0 memoise_1.1.0 glue_1.2.0 compiler_3.4.1 pillar_1.1.0
[21] pkgconfig_2.0.1