Я пытаюсь подключиться к Microsoft SQL Server с R на Mac/Linux, и у меня проблемы с 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)
но у меня также есть Jave 1.6, установленный на моей машине. У меня установлен SquirrelSQL и он подключается к MS SQL Server без каких-либо проблем с использованием драйвера JTDS; версия Java, над которой работает SquirrelSQL, составляет 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 и их взаимодействием. Поиск Google обнаружил нескольких людей с аналогичными проблемами без решения.
Любые советы о том, как вести JDBC или какой-либо другой способ подключения к MS SQL Server из R, будут высоко оценены!
ОБНОВЛЕНИЕ 1. Ну, первое выражение, похоже, работает сейчас - я получаю соединение и без проблем могу запросить базу данных. Не уверен, что исправила проблему - может быть, мне нужно перезапустить сеанс mac/R. Второй оператор все еще не работает, с тем же сообщением об ошибке.