4 SQL*Plusの管理
この章では、SQL*Plusの管理方法について説明します。内容は次のとおりです。
4.1 コマンドラインSQL*Plusの管理
この項では、コマンドラインSQL*Plusの管理方法について説明します。例では、SQL*Plusにより、疑問符(?)は環境変数ORACLE_HOME
の値に置き換えられています。
4.1.1 設定ファイルの使用
SQL*Plusを起動すると、最初にサイト・プロファイル設定ファイルglogin.sql
が実行され、次にユーザー・プロファイル設定ファイルlogin.sql
が実行されます。
サイト・プロファイル・ファイルの使用
グローバルなサイト・プロファイル・ファイルは、$ORACLE_HOME/sqlplus/admin/glogin.sql
です。この場所にサイト・プロファイル・ファイルがすでに存在する場合は、SQL*Plusのインストール時にそのファイルが上書きされます。SQL*Plusを削除すると、そのサイト・プロファイル・ファイルも削除されます。
ユーザー・プロファイル・ファイルの使用
ユーザー・プロファイル・ファイルは、login.sql
です。SQL*Plusは、最初に現行のディレクトリを検索し、次に環境変数ORACLEPATH
で指定したディレクトリを検索してこのファイルを検出します。この環境変数の値は、ディレクトリをコロンで区切ったリストです。SQL*Plusでは、これらのディレクトリを環境変数ORACLEPATH
にリストされている順序で検索し、login.sql
ファイルを検出します。
login.sql
ファイルに設定されているオプションは、glogin.sql
ファイルに設定されているオプションよりも優先されます。
関連項目:
プロファイル・ファイルの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。
4.1.2 Oracle Databaseサンプル・スキーマの使用
Oracle Databaseをインストールするか、またはOracle Database Configuration Assistantを使用してデータベースを作成する場合は、Oracle Databaseサンプル・スキーマをインストールできます。
4.1.3 SQL*Plusのコマンドライン・ヘルプのインストールと削除
この項では、SQL*Plusのコマンドライン・ヘルプのインストール方法と削除方法について説明します。
4.1.3.1 SQL*Plusのコマンドライン・ヘルプのインストール
SQL*Plusのコマンドライン・ヘルプは、次の3つの方法でインストールできます。
-
事前構成済データベースのインストールを完了します。
インストールの一部として事前構成済データベースをインストールすると、SQL*Plusのコマンドライン・ヘルプがSYSTEMスキーマに自動的にインストールされます。
-
$ORACLE_HOME/bin/helpins
シェル・スクリプトを使用して、SYSTEMスキーマにコマンドライン・ヘルプを手動でインストールします。helpins
スクリプトは、SYSTEMパスワードを要求するプロンプトを表示します。プロンプトを表示せずにこのスクリプトを実行する場合は、環境変数SYSTEM_PASS
にSYSTEMユーザー名とパスワードを設定します。たとえば:-
Bourne、BashまたはKornシェル:
$ SYSTEM_PASS=SYSTEM/system_password; export SYSTEM_PASS
-
Cシェルの場合:
% setenv SYSTEM_PASS SYSTEM/system_password
-
-
$ORACLE_HOME/sqlplus/admin/help/helpbld.sql
スクリプトを使用して、SYSTEMスキーマにコマンドライン・ヘルプを手動でインストールします。たとえば、次のコマンドを実行します。
system_password
は、SYSTEMユーザーのパスワードです。$ sqlplus SQL> CONNECT SYSTEM Enter password: system_password SQL> @?/sqlplus/admin/help/helpbld.sql ?/sqlplus/admin/help helpus.sql
ノート:
helpins
シェル・スクリプトおよびhelpbld.sql
スクリプトは、新しい表を作成する前に、既存のコマンドライン・ヘルプの表を削除します。
4.2 コマンドラインSQL*Plusの使用
この項では、コマンドラインSQL*Plusの使用方法について説明します。次の項目が含まれます。
4.2.1 SQL*Plusからのシステム・エディタの使用
SQL*PlusプロンプトでED
またはEDIT
コマンドを実行すると、ed
、emacs
、ned
、vi
などのオペレーティング・システム・エディタが起動します。ただし、環境変数PATH
には、エディタの実行可能ファイルが格納されているディレクトリを指定する必要があります。
HISTORY
コマンドを使用すると、以前使用したSQL*Plus、SQLまたはPL/SQLコマンドを現在のセッションの履歴リストから、実行、編集または削除できます。現在のSQL*Plusセッションで発行されたコマンドの履歴を有効または無効にできます。
エディタを起動すると、現行のSQLバッファがエディタに格納されます。エディタを終了すると、変更されたSQLバッファがSQL*Plusに戻されます。
SQL*Plusの_EDITOR
変数を定義することにより、起動するエディタを指定できます。この変数は、glogin.sql
サイト・プロファイルまたはlogin.sql
ユーザー・プロファイルに定義できます。また、SQL*Plusセッション時に定義することもできます。たとえば、デフォルト・エディタをvi
に設定するには、次のコマンドを実行します。
SQL> DEFINE _EDITOR=vi
_EDITOR
変数を設定しない場合は、環境変数EDITOR
またはVISUAL
のいずれかの値が使用されます。両方の環境変数が設定されている場合は、環境変数EDITOR
の値が使用されます。_EDITOR
、EDITOR
およびVISUAL
のいずれも指定されていない場合、デフォルト・エディタはvi
になります。定義されたエディタは、HISTORY
コマンドの編集オプションで使用されます。次のSQL文について考えてみます。
SQL> hist
1 select * from dual;
2 desc dual
前述のSQL文の最初のエントリをvi
エディタで開くには、次のコマンドを使用します。
SQL> hist 1 edit
エディタを起動すると、SQL*Plusは一時ファイルafiedt.buf
を使用してエディタにテキストを渡します。SET EDITFILE
コマンドを使用すると、別のファイル名を指定できます。たとえば:
SQL> SET EDITFILE /tmp/myfile.sql
SQL*Plusは、一時ファイルを削除しません。
4.2.2 SQL*Plusからのオペレーティング・システム・コマンドの実行
SQL*Plusプロンプトの後の最初の文字としてHOSTコマンドまたは感嘆符(!)を使用すると、後続の文字がサブシェルに渡されます。オペレーティング・システム・コマンドを実行するときに使用するシェルは、環境変数SHELL
によって設定されます。デフォルト・シェルはBourneシェルです。シェルが実行できない場合は、SQL*Plusによりエラー・メッセージが表示されます。
SQL*Plusに戻るには、exit
コマンドを実行するか、[Ctrl]+[D]を押します。
たとえば、1つのコマンドを実行するには、次のコマンド構文を使用します。
SQL> ! command
この例のcommand
は、実行するオペレーティング・システム・コマンドです。
SQL*Plusから複数のオペレーティング・システム・コマンドを実行するには、HOSTまたは!コマンドを実行します。オペレーティング・システム・プロンプトに戻るには、[Enter]を押します。
4.3 SQL*Plusの制限事項
この項では、次のSQL*Plusの制限事項を説明します。
4.3.1 ウィンドウのサイズ変更
SQL*Plusのシステム変数LINESIZE
およびPAGESIZE
のデフォルト値では、ウィンドウのサイズは自動的に調整されません。ウィンドウのサイズが変更された場合は、LINESIZE
およびPAGESIZE
システム変数を設定する必要があります。
4.3.3 パスワードの非表示
コマンドラインでパスワードを渡したり、SYSTEM_PASS
環境変数をSYSTEMユーザーのユーザー名とパスワードに設定すると、この情報がps
コマンドの出力に表示される場合があります。権限のないアクセスを防ぐため、SQL*Plusによってプロンプトが表示された場合のみSYSTEM
パスワードを入力してください。
スクリプトを自動的に実行する場合は、パスワードの格納が不要な認証方法の使用を考慮してください。たとえば、Oracle Databaseへの外部認証ログインなどがあります。セキュリティの低い環境では、スクリプト・ファイルにオペレーティング・システム・パイプを使用して、パスワードをSQL*Plusに渡すことを検討する必要があります。たとえば:
$ echo system_password | sqlplus SYSTEM @MYSCRIPT
あるいは、次のコマンドを実行します。
$ sqlplus <<EOF
SYSTEM/system_password
SELECT ...
EXIT
EOF
この例のsystem_password
は、SYSTEMユーザーのパスワードです。