本記事では、Oracle LinuxおよびWindowsの環境にSQLclをインストールする手順を、Javaの準備からインストール、接続確認まで詳しく解説します。また、Oracle Linux向けにはCloud-initスクリプトも紹介し、インスタンス起動時に自動でSQLclをセットアップする方法も取り上げます。
これからSQLclを導入したい方の参考になれば幸いです。
環境情報
| 項目 | バージョン |
|---|---|
| Java | 11 |
| SQLcl | 24.1 |
| Oracle Linux | 8 |
| Windows | Windows Server 2019 Standard Edition |
ステップ
1. Oracle Linuxにインストール
1-1. Javaのインストール
Java 11以上がインストールされていない場合、SQLclを起動すると、以下のエラーが発生する。
Error: SQLcl requires Java 11 and above to run.
Found Java version no_java.
Please set JAVA_HOME to appropriate version.
コマンド: sudo dnf install java-11-openjdk -y
[opc@oracle-linux8 ~]$ sudo dnf install java-11-openjdk -y
...
Complete!
[opc@oracle-linux8 ~]$ java -version
openjdk version "11.0.21" 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-2.0.1) (build 11.0.21+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-2.0.1) (build 11.0.21+9-LTS, mixed mode, sharing)
[opc@oracle-linux8 ~]$
1-2. SQLclのインストール
コマンド:sudo yum install sqlcl -y
SQLclを起動する:
[opc@linux8 ~]$ sql /nolog
SQLcl: Release 24.1 Production on Wed Apr 10 07:14:17 2024
Copyright (c) 1982, 2024, Oracle. All rights reserved.
SQL>
以下のエラーを遭遇した時:
Exception in thread "main" java.lang.Error: java.io.FileNotFoundException: /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-2.0.1.el8.x86_64/lib/tzdb.dat (No such file or directory)
回避策:sudo dnf install tzdata-java -y
1-3. ターゲット・データベースへ接続する (動作確認)
動作確認のために、Autonomous Database (ADBと略)へ接続します。(事前準備として、ADB Walletをインスタンスにコピーしておいてください。)
コマンド:sql -cloudconfig Wallet_DBname.zip <username>/<password>@<tns_name>
※、TNS名は圧縮ファイルの「tnsnames.ora」でも確認可能で、次のいずれかの形式です。
DBname_high、DBname_medium、DBname_low
[opc@oracle-linux8 ~]$ sql -cloudconfig Wallet_adw.zip admin/<password>@adw_high
<中略>
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.23.0.1.0
SQL>
SQLclでADBに接続する場合、Walletファイルを解凍する必要はありません。
接続時のトラブルシューティング
パスワードに特殊文字があり、上記のコマンドに識別されない場合、次の2つ対策があります。
- 方法-1:特殊文字の前に、
\を付けます。 - 方法-2:次のコマンドで接続して、プロンプトが表示されたら、パスワードを入力します。
sql -cloudconfig Wallet_DBname.zip <username>@<tns_name>
[opc@oracle-linux8 ~]$ sql -cloudconfig Wallet_adw.zip admin@adw_high
SQLcl: Release 24.1 Production on Wed Apr 10 07:38:43 2024
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Password? (**********?)
Cloud-initスクリプト
#!/bin/bash
# Install Java 11
dnf install java-11-openjdk -y
# Install SQLcl
dnf install sqlcl -y
2. Windowsにインストール
2-1. Javaのインストール
SQL Developer (Windows 64-bit with JDK 11 included)をインストールした場合は、それを利用できます。
JAVAダウンロードURL: https://www.oracle.com/java/technologies/downloads/
インストーラ・ファイルを実行し、インストールを開始します(省略)。
PATH環境変数に追加します。次はSQL Developerの例です。
$env:Path += ";C:\sqldeveloper\jdk\jre\bin"
バージョン確認:
PS C:\Users\opc> java -version
java version "11.0.18.0.2" 2023-02-17 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.18.0.2+1-LTS-3)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.18.0.2+1-LTS-3, mixed mode)
2-2. SQLclのインストール
ダウンロードURL: https://www.oracle.com/database/sqldeveloper/technologies/sqlcl/download/
最新バージョン: 24.1.0.087.0929 - April 3, 2024
圧縮ファイルサイズ:66 MB
ライセンス:フリー

ダウンロード後、圧縮ファイルを解凍します。
Expand-Archive -Path C:\Users\opc\Downloads\sqlcl-24.1.0.087.0929.zip -DestinationPath C:\
PATH環境変数に追加します。
$env:Path += ";C:\sqlcl\bin"
バージョン確認:
PS C:\Users\opc> sql -V
SQLcl: Release 24.1.0.0 Production Build: 24.1.0.087.0929
PS C:\Users\opc>
2-3. ターゲット・データベースへ接続する (動作確認)
この例では、Oracle Base DBへ接続します。
コマンド:sql $User/$Password@${Hostname}:$Port/$ServiceName
PS C:\Users\opc> sql system/<password>@db19c:1521/DB19C_pdb1.<subnetname>.<vcnname>.oraclevcn.com
...中略...
Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.22.0.0.0
SQL>
Base DBのサービス名を取得する方法について、次の記事をご参照ください。
Oracle Base DBのサービス名を取得する
以上
関連記事
コマンドラインを使用してWindowsクライアントからAutonomous DBに接続する
OCI Cloud-initスクリプト