1

I am getting below error while trying to run this script which should connect to MSSQL server

library(RJDBC)
library(DBI)
drv <- RJDBC::JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
           "/home/infa/SQL_JDBC/sqljdbc_10.2/enu/mssql-jdbc-10.2.1.jre8.jar")

conn <- DBI::dbConnect(drv, url='jdbc:sqlserver://server_name.com;databaseName=MY_DB;encrypt=true;trustServerCertificate=true' , user="USER", password="PWD")
print(conn)
output<- dbGetQuery(conn, "SELECT * FROM MY_DB.TABLE_NAME")
print(output)

While running above script I am getting this error

Loading required package: methods
Loading required package: DBI
Loading required package: rJava
Error in errorCondition(paste0(..., "\n  JDBC ERROR: ", .jcall(x, "S",  : 
  could not find function "errorCondition"
Calls: dbGetQuery ... dbSendQuery -> .local -> .verify.JDBC.result -> .verify.ex
Execution halted

Environment:unix R version 3.4.3 (2017-11-30) -- "Kite-Eating Tree" RJDBC Version : packageVersion("RJDBC") [1] ‘0.2.10’ rJava Version: packageVersion("rJava") [1] ‘0.9.11’ DBI Version: packageVersion("DBI") [1] ‘1.0.0’

1 Answers1

0

Try to replace this line:

conn <- DBI::dbConnect(drv, url='jdbc:sqlserver://server_name.com;databaseName=MY_DB;encrypt=true;trustServerCertificate=true' , user="USER", password="PWD")

With that line:

conn <- RJDBC::dbConnect(drv, url='jdbc:sqlserver://server_name.com;databaseName=MY_DB;encrypt=true;trustServerCertificate=true' , user="USER", password="PWD")

Looks like you are using DBI package. Replace with RJDBC package to match library(RJDBC) use condition.

You could try change your R version to one update. Here old versions of R are incopatibles to new one. 3.2.2 R is incompatible to RJDBC 0.2.10.

Valtoni Boaventura
  • 1,519
  • 12
  • 13