Mac/Linux 上の R から Microsoft SQL Server に接続しようとしていますが、RJDBC に問題があります。Microsoft のドライバーと JTDS の両方をダウンロードしたが、次の行のいずれも機能しない場合:
library(RJDBC)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
"/Users/victor/Downloads/sqljdbc_3.0/enu/sqljdbc4.jar")
drv1 <- JDBC('net.sourceforge.jtds.jdbc.Driver',
"/Users/victor/Downloads/jtds-1/jtds-1.3.0.jar")
それぞれが次のエラー メッセージを返します。
Error in .jfindClass(as.character(driverClass)[1]) : class not found
問題は間違った Java バージョンにあると思われます: 私のデフォルトの Java は
$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
しかし、私のマシンには Java 1.6 もインストールされています。SquirrelSQL をインストールしましたが、JTDS ドライバーを使用して問題なく MS SQL Server に接続します。SquirrelSQL が実行される Java バージョンは 1.7.0.11 です。
私はR CMD javareconf
次の結果で実行しました:
$ R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.7.0_11
Java home path : /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path:
JNI linker flags : -framework JavaVM
JNI cpp flags : -I$(JAVA_HOME)/include
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.
RJDBCおよびrJavaパッケージを削除/再インストールしましたが、まだ何も機能しません。
私は Java/RJDBC とその相互作用にあまり詳しくないので、今は行き詰まっていると思います。グーグルで検索すると、同様の問題を抱えている人が何人か見つかりましたが、解決策はありませんでした。
JDBC を動作させる方法や、R から MS SQL Server に接続するその他の方法についてのヒントをいただければ幸いです。
更新 1。さて、最初のステートメントは機能しているようです。接続が確立され、問題なくデータベースにクエリを実行できます。何が問題を解決したのかわからない - Mac/R セッションを再起動する必要があるかもしれません。2 番目のステートメントはまだ機能せず、同じエラー メッセージが表示されます。