Oracle Databaseの次世代CUI「SQLcl」のインストール方法について紹介します。
SQLclは、コマンド履歴、オートコンプリート、新規の強力なコマンドが利用することができます。
もちろん*従来のSQLPlusのコマンド**も使用することができ、
今後SQL*Plusに代わるCUIユーティリティになることでしょう。
SQLclのダウンロード
SQLclはLinux版、Windows版もJavaで作成されており、
どちらも同じメディアで利用できます。
SQLclのダウンロードはここからからダウンロード出来ます。
ダウンロードページの赤枠の「Download」でダウンロードしましょう。
なお前提としてJava8以上が必要になります。
Linuxでのインストール手順
SQLclのインストールは非常に簡単でZIPファイルを解凍すれば直ぐに利用することができます。
今回は「$ORACLE_HOME」配下にSQLclを配置しましょう。
cd $ORACLE_HOME
unzip sqlcl-*.zip
cd sqlcl/bin/
rm sql.exe
Linux版では使用しない「exe」ファイルは削除しておきます。
より使いやすいようにするために「.bash_profile」に「SQLcl」のPATHを通しておきましょう。
以下、「.bash_profile」への追記のサンプルになります。
自身の環境に合わせてORACLE_HOMEやORACLE_SIDを変更しておきましょう
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/18.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:${ORACLE_HOME}/sqlcl/bin:$ORACLE_HOME/jdk/bin:${PATH}
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=JAPANESE_JAPAN.UTF8
export LANG=ja_JP.UTF-8
export ORACLE_SID=orcl18c
では実際にデータベースに繋がるか試してみましょう。
以下のように「sql」で実行できます。
[oracle@rhel73-18000 ~]$ sql
SQLcl: 金 8 10 23:25:40 2018のリリース18.2 Production
Copyright (c) 1982, 2018, Oracle. All rights reserved.
ユーザー名 (''?) sys as sysdba
パスワード (**********?) ******
接続先:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
Sessionが変更されました。
経過時間: 00:00:00.033
23:26:03 SYS@orcl18c > select instance_name from v$instance ;
INSTANCE_NAME
----------------
orcl18c
また引数を渡したデータベースに接続することも可能です。
sql <ユーザー名>/<パスワード>@接続識別子
Windowへのインストール手順
Windowのインストールも簡単でZIPファイルを展開すれば完了です。
今回は「C:\Program Files (x86)\Oracle\sqlcl」に配置します。
「sql.exe」のショートカットをデスクトップ上に作成しておくと使いやすくて便利です。
以下のように「SQLcl」から接続することができます。
SQLcl: 土 8 11 00:53:45 2018のリリース18.2 Production
Copyright (c) 1982, 2018, Oracle. All rights reserved.
ユーザー名 (''?) sys@localhost:1521/orcl18c as sysdba
パスワード (**********?) ******
接続先:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
SQL> select instance_name from v$instance ;
INSTANCE_NAME
----------------
orcl18c
NLS_LANGの設定が誤っているとSQL実行時に以下のエラーが出力します。
SQL> select instance_name from v$instance;
java.io.UnsupportedEncodingException: JA16SJIS
at java.lang.StringCoding.encode(Unknown Source)
at java.lang.String.getBytes(Unknown Source)
at oracle.dbtools.db.ResultSetFormatter.write(ResultSetFormatter.java:673)
at oracle.dbtools.db.ResultSetFormatter.write(ResultSetFormatter.java:666)
at oracle.dbtools.db.SQLPLUSCmdFormatter.rset2sqlplus(SQLPLUSCmdFormatter.java:2276)
at oracle.dbtools.db.ResultSetFormatter.rset2sqlplus(ResultSetFormatter.java:309)
at oracle.dbtools.db.ResultSetFormatter.rset2sqlplus(ResultSetFormatter.java:283)
at oracle.dbtools.db.ResultSetFormatter.formatResults(ResultSetFormatter.java:144)
at oracle.dbtools.db.ResultSetFormatter.formatResults(ResultSetFormatter.java:69)
at oracle.dbtools.raptor.newscriptrunner.SQL.processResultSet(SQL.java:794)
at oracle.dbtools.raptor.newscriptrunner.SQL.executeQuery(SQL.java:705)
at oracle.dbtools.raptor.newscriptrunner.SQL.run(SQL.java:82)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.runSQL(ScriptRunner.java:404)
at oracle.dbtools.raptor.newscriptrunner.ScriptRunner.run(ScriptRunner.java:230)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:341)
at oracle.dbtools.raptor.newscriptrunner.ScriptExecutor.run(ScriptExecutor.java:224)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.process(SqlCli.java:406)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.processLine(SqlCli.java:417)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.startSQLPlus(SqlCli.java:1136)
at oracle.dbtools.raptor.scriptrunner.cmdline.SqlCli.main(SqlCli.java:493)
環境変数「NLS_LANG」を「Japanese_Japan.AL32UTF8」に修正しましょう。
スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ)posted with ヨメレバ
中山 清喬,飯田 理恵子 インプレス 2013-04-19