概要
Databricks Runtime 13.3 LTS にて Oracle Autonomous Database に ojdbc11.jar にて接続した際に、次のエラーが発生しました。 ojdbc11.jar ではなく、ojdbc8.jar を利用する必要があるようです。
java.lang.UnsupportedClassVersionError: oracle/jdbc/driver/OracleDriver has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
エラー概要
エラーメッセージ
java.lang.UnsupportedClassVersionError: oracle/jdbc/driver/OracleDriver has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
実行コード
username = "" ## ユーザー名
password = "" ## パスワード
hostname = "adb.ap-tokyo-1.oraclecloud.com" # ホスト名
service_name = "g55ca460616b750_kpwq304szjg90by8_high.adb.oraclecloud.com" # サービス名
# connection strings
conn_str = "("
conn_str += f"description=(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)(host={hostname})"
conn_str += ")"
conn_str += "("
conn_str += f"connect_data=(service_name={service_name})"
conn_str += ")"
conn_str += "(security=(ssl_server_dn_match=yes))"
conn_str += ")"
# JDBC connection URL
jdbc_url = f"jdbc:oracle:thin:@{conn_str}"
# JDBC connection properties
properties = {
"url": jdbc_url,
"user": username,
"password": password,
"driver": "oracle.jdbc.driver.OracleDriver",
"sessionInitStatement": "ALTER SESSION SET TIME_ZONE = 'Asia/Tokyo'",
"dbtable": tgt_table,
}
# Create spark dataframe
df = spark.read.format("jdbc").options(**properties).load()
df.display()