R 到 SQL 服务器连接通过 JDBC - 驱动程序版本错误

R to SQL Server Connection via JDBC - wrong version of driver

我正在尝试通过 JDBC 连接到 SQL 服务器(是的,我知道 ODBC 更好,但我需要更改服务器安全性才能做到这一点)。

  library(RJDBC)
  library(rJava)
  drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver" , 
              "C:/SQL JDBC/sqljdbc_4.1/enu/jre7/sqljdbc41.jar" ,identifier.quote="`")

但是我好像找不到合适的驱动版本:

Error in .jfindClass(as.character(driverClass)[1]) : 
  java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 52.0

我试过 4.0、4.1、4.2 和 8.4 的驱动程序:

https://docs.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-ver15#java-and-jdbc-specification-support

我在 Windows 10 上安装了 64 位 R 和 64 位 Java。

问题是您的机器上安装了 Java 8,但是驱动程序是为 java 14 构建的(class 文件版本 58.0 告诉那个)。

您可以在您的计算机上安装 java 14 或获取 Java 8 的 JDBC 驱动程序。

A link for SQL Server JDBC driver for java 8