LoginSignup
6
6

More than 5 years have passed since last update.

もっと楽に SQLcl 使おう【使いやすい SQL*Plus】

Posted at

皆さんは SQLcl は使われていますか?
SQL*Plus の拡張にあたるツールなのですが、
OracleDB 12.2 からは標準で同梱されるようになりました。

これを使うと SQL*Plus でできなかった上下キーによる履歴の参照などができるようになります(他の利点については下記参照)。
("Oracle SQLcl"を使ってみる - Qiita)

これだけであれば rlwrapper などを導入する選択肢もありますが、
環境によっては好き勝手にインストールしづらい場合があります。
その点標準で同梱されている sqlcl であれば、何も気にせず使える可能性が高いです。
そのような場合の選択肢として知っておくと良いと思います。

環境

  • Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

使い方(OracleDB 12.2 以降)

普段 sqlplus でログインしている場合、sqlplussql に変えるだけで使えます。

$ sql <USERNAME>/<PASSWORD>@pdborcl

ただしこれをそのまま実行すると、下記のように カレントパスが変更されます
コマンドが見つかれない方は、$ORACLE/sqldeveloper/sqlcl/bin/ にファイルが無いかパスが通っていない可能性があります。

[oracle@dbserver mywork]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.2.0/dbhome_1
[oracle@dbserver mywork]$ pwd
/home/oracle/work/fam_taro/mywork                                 # sql コマンド前のカレントディレクトリ
[oracle@dbserver mywork]$ sql /nolog

SQLcl: 月 12 25 10:25:51 2017のリリース12.2.0.1.0 RC
Copyright (c) 1982, 2017, Oracle.  All rights reserved.

SQL> pwd
/u01/app/oracle/product/12.2.0/dbhome_1/sqldeveloper/sqlcl/bin/   # sql コマンド後のカレントディレクトリ

上記の通り、カレントディレクトリが $ORACLE_HOME/sqldeveloper/sqlcl/bin/ に変わっています。
(このように pwd コマンドなどが直接使えるのも sqlcl の特徴です)

sqlcl では cd コマンドが叩けるため、
sqlcl でログイン後に cd /to/my/directry/path と叩けば良いのですが、
自身の作業フォルダから sqlcl を呼び出す場合は何かとストレスになります。

起動スクリプト(ちょっと改善版)

ですので、予め下記のようなスクリプトを用意しておくと便利です。
コメントアウトしている部分は、行幅などの設定用ファイル (login.sql) を読み込むためにあります。
はじめに何か設定したい方は、 login.sql などに記述しておくと良いです。

#!/bin/sh

FNAME=tmp_login.sql
SCRIPT_DIR=$(cd $(dirname $0); pwd)

echo "cd ${SCRIPT_DIR}" > ${FNAME}
echo "" >> ${FNAME}
# echo "@login" >> ${FNAME}

sql <USERNAME>/<PASSWORD>@pdborcl @${SCRIPT_DIR}/${FNAME}

このスクリプトを使えば、以下のように pwd の結果が同じ場所になります。
(というかこれくらいデフォルトの sqlcl で対応しt)

[oracle@dbserver mywork]$ pwd
/home/oracle/work/fam_taro/mywork

[oracle@dbserver mywork]$ sh sample.sh

SQLcl: 月 12 25 10:47:01 2017のリリース12.2.0.1.0 RC

Copyright (c) 1982, 2017, Oracle.  All rights reserved.

Last Successful login time: 月 12月 25 2017 10:47:04 +09:00

接続先:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> pwd
/home/oracle/work/fam_taro/mywork

それでは皆さん快適な SQLcl ライフを!

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6