SQL*Plusのカスタマイズ
今回はSQL*Plusが使用するエディタの設定方法を紹介します。
SQL*Plusで以下のように
デフォルトの設定では、Windowsは「メモ帳」、Linuxでは「edエディタ」が編集用のエディタとして起動します。
「メモ帳」の使い方を知らない人は少ないと思いますが、「edエディタ」の使い方を知らない人は結構いるのではないでしょうか。
実際「edエディタ」は、エディタをどうやって終了すればよいのかも最初は分からない程です。
(おらも最初は終了の仕方がわからずに、端末ごと切断してしまいました)
というわけで、今回はLinux環境で、SQL*Plusが使用するエディタを使い方の難しい「edエディタ」から普段から使い慣れている(?)「viエディタ」へ変更してみます。
[環境]
[エディタの設定]
1.事前定義変数の確認
DEFINEコマンドを実行して事前定義変数を確認します。
事前定義変数とは、SQL*Plusの設定情報などを保持している変数です。
事前定義変数_EDITORに設定されている値がSQL*Plusが使用するエディタです。
現在は「ed」が設定されているので「edエディタ」が起動します。
その他の事前定義変数の詳細は以下を参照して下さい。
※参照するにはOTNのユーザ登録が必要です。
2.事前定義変数の変更
「viエディタ」が起動するように_EDITORの値を変更します。
値の変更にもDEFINEコマンドを使用します。
構文は以下の通りです。
これで設定は完了です。
事前定義変数の値はSQL*Plusを終了してしまうと元に戻ってしまうため毎回設定が必要になります。
これは面倒なので「login.sql」を作成して自動で設定されるようにしましょう。
「login.sql」とはSQL*Plusでデータベースに接続する際に毎回実行されるスクリプトです。
SQL*Plusはこのスクリプトファイルをユーザ(OSのユーザ)がsqlplusコマンドを実行したカレントディレクトリから探して実行します。
例えば、現在のディレクトリが/home/oracleだとして、ここでsqlplusコマンドを実行した場合/home/oracle/login.sqlというファイルをSQL*Plusは探して実行します。
では、「login.sql」を作成してみます。
まずはSQL*Plusを終了します。
今回は/home/oracleディレクトリに作成します。
これで毎回設定しなくても「viエディタ」が起動するようになりました。
以上
SQL*Plusで以下のように
SQL> editとコマンドを打ち込むと、前回実行したSQLをエディタで開いて編集する事が出来ます。
デフォルトの設定では、Windowsは「メモ帳」、Linuxでは「edエディタ」が編集用のエディタとして起動します。
「メモ帳」の使い方を知らない人は少ないと思いますが、「edエディタ」の使い方を知らない人は結構いるのではないでしょうか。
実際「edエディタ」は、エディタをどうやって終了すればよいのかも最初は分からない程です。
(おらも最初は終了の仕方がわからずに、端末ごと切断してしまいました)
というわけで、今回はLinux環境で、SQL*Plusが使用するエディタを使い方の難しい「edエディタ」から普段から使い慣れている(?)「viエディタ」へ変更してみます。
[環境]
OS | Red Hat Enterprise Linux AS release 3 |
DB | Oracle Database 10g Release 10.1.0.3.0 |
[エディタの設定]
1.事前定義変数の確認
DEFINEコマンドを実行して事前定義変数を確認します。
事前定義変数とは、SQL*Plusの設定情報などを保持している変数です。
SQL> DEFINE「DEFINE _EDITOR = "ed" (CHAR)」という行が確認出来ますね。
DEFINE _DATE = "06-07-27" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "gtest" (CHAR)
DEFINE _USER = "GTEST" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000300" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Release 10.1.0.3.0 - Production" (CHAR)
DEFINE _O_RELEASE = "1001000300" (CHAR)
事前定義変数_EDITORに設定されている値がSQL*Plusが使用するエディタです。
現在は「ed」が設定されているので「edエディタ」が起動します。
その他の事前定義変数の詳細は以下を参照して下さい。
- SQL*Plus ユーザーズ・ガイドおよびリファレンス10g リリース2
※参照するにはOTNのユーザ登録が必要です。
2.事前定義変数の変更
「viエディタ」が起動するように_EDITORの値を変更します。
値の変更にもDEFINEコマンドを使用します。
構文は以下の通りです。
DEFINE variable = value上記を踏まえ_EDITORの値を「vi」に設定してみます。
※variableには事前定義変数名、valueには値を指定します。
SQL> DEFINE _EDITOR = vi設定が変更されたか確認してみます。
SQL> DEFINE「DEFINE _EDITOR = "vi" (CHAR)」となっているのが確認出来ましたね。
DEFINE _DATE = "06-07-27" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "gtest" (CHAR)
DEFINE _USER = "GTEST" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000300" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Release 10.1.0.3.0 - Production" (CHAR)
DEFINE _O_RELEASE = "1001000300" (CHAR)
これで設定は完了です。
事前定義変数の値はSQL*Plusを終了してしまうと元に戻ってしまうため毎回設定が必要になります。
これは面倒なので「login.sql」を作成して自動で設定されるようにしましょう。
「login.sql」とはSQL*Plusでデータベースに接続する際に毎回実行されるスクリプトです。
SQL*Plusはこのスクリプトファイルをユーザ(OSのユーザ)がsqlplusコマンドを実行したカレントディレクトリから探して実行します。
例えば、現在のディレクトリが/home/oracleだとして、ここでsqlplusコマンドを実行した場合/home/oracle/login.sqlというファイルをSQL*Plusは探して実行します。
では、「login.sql」を作成してみます。
まずはSQL*Plusを終了します。
SQL> exit次に任意のディレクトリに「login.sql」を作成します。
今回は/home/oracleディレクトリに作成します。
cd /home/oracle「login.sql」に_EDITORの設定を記述します。
vi login.sql
DEFINE _EDITOR = vi保存して閉じます。そして/home/oracleディレクトリからSQL*Plusを起動します。
sqlplus user/password@service_nameそれでは変更されているか確認してみましょう。
※user、password、service_nameは環境に合わせて変更して下さい。
SQL> DEFINE「DEFINE _EDITOR = "vi" (CHAR)」になっていますね。
DEFINE _DATE = "06-07-27" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "gtest" (CHAR)
DEFINE _USER = "GTEST" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000300" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Release 10.1.0.3.0 - Production" (CHAR)
DEFINE _O_RELEASE = "1001000300" (CHAR)
これで毎回設定しなくても「viエディタ」が起動するようになりました。
以上
2006年07月27日(木) 15:39:37 Modified by mr_makochi