エラーの内容
SQLcl: Release 4.2.0
起動時に「Unsupported major.minor version 51.0」が発生する。
$ sql
Exception in thread "main" java.lang.UnsupportedClassVersionError: oracle/dbtools/raptor/scriptrunner/cmdline/SqlCli : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
a'''
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli. Program will exit.
Oracle Database 12.2にバンドルされてるSQLcl(Release 12.2.0.1.0 RC)
接続時に「Error Message = No suitable driver found for jdbc:oracle:oci8:@」が発生する。
$ sql
SQLcl: Release 12.2.0.1.0 RC on Sat Mar 11 11:16:16 2017
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Username? (''?) system
Password? (**********?) *********
USER = system
URL = jdbc:oracle:oci8:@
Error Message = No suitable driver found for jdbc:oracle:oci8:@
USER = system
URL = jdbc:oracle:thin:@127.0.0.1:1521:ORCL
Error Message = No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL
USER = system
URL = jdbc:oracle:thin:@localhost:1521/orcl
Error Message = No suitable driver found for jdbc:oracle:thin:@localhost:1521/orcl
Username? (RETRYING) ('system/*********'?)
Warning: You are no longer connected to ORACLE.
なんでか
SQLcl 4.2ではJRE8以上が必要です。
SQLclの入手方法を教えてください。
OTNから.ZIPファイルをダウンロードして、展開します。ターミナル/コマンド・セッションを起動して、\binディレクトリの‘SQL’プログラムを実行します。Java Runtime Engine(JRE)8以上がマシンにインストールされている場合は、これで使用できます。
どうするか
JAVA_HOMEにJRE8が含まれるディレクトリを指定して、SQLclを起動する。
Oracle Database12.2ではORACLE_HOME以下のJavaはJRE8なのでこれを指定します。
export JAVA_HOME=/u01/app/oracle/product/java/jdk1.8.0_74
12.2の場合以下でもOKです。
export JAVA_HOME=$ORACLE_HOME/jdk
参考
"No suitable driver found" for sqlcl on Oracle Public Cloud 12.2
https://community.oracle.com/thread/3989815
"Oracle SQLcl"を使ってみる
http://qiita.com/mon_tu/items/da3333590847fdfb1672
Oracle SQL Developerコマンドライン(SQLcl)
http://www.oracle.com/technetwork/jp/developer-tools/sqlcl/downloads/sqlcl-faq-3014678-ja.html