Oracle® Database管理者リファレンス 11gリリース2 (11.2) for Linux and UNIX-Based Operating Systems B56317-12 |
|
前 |
次 |
この章では、SQL*Plusの管理方法について説明します。内容は次のとおりです。
関連項目: SQL*Plusの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。 |
この項では、コマンドラインSQL*Plusの管理方法について説明します。例では、SQL*Plusにより、疑問符(?)は環境変数ORACLE_HOME
の値に置き換えられています。
SQL*Plusを起動すると、最初にサイト・プロファイル設定ファイルglogin.sql
が実行され、次にユーザー・プロファイル設定ファイルlogin.sql
が実行されます。
グローバルなサイト・プロファイル・ファイルは、$ORACLE_HOME/sqlplus/admin/glogin.sql
です。この場所にサイト・プロファイル・ファイルが存在する場合は、SQL*Plusのインストール時にそのファイルが上書きされます。SQL*Plusを削除すると、そのサイト・プロファイル・ファイルも削除されます。
ユーザー・プロファイル・ファイルは、login.sql
です。SQL*Plusは、最初に現行のディレクトリを検索し、次に環境変数SQLPATH
で指定したディレクトリを検索してこのファイルを検出します。この環境変数の値は、ディレクトリをコロンで区切ったリストです。SQL*Plusでは、これらのディレクトリを環境変数SQLPATH
にリストされている順序で検索し、login.sql
ファイルを検出します。
login.sql
ファイルに設定されているオプションは、glogin.sql
ファイルに設定されているオプションよりも優先されます。
関連項目: プロファイル・ファイルの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。 |
Oracle Databaseには、指定したSQLコマンドやSQL*Plusコマンドを無効にするためのPRODUCT_USER_PROFILE表が用意されています。この表は、事前構成済データベースをインストールするインストール・タイプを選択した場合に、自動的に作成されます。
関連項目: インストール・オプションの詳細は、『Oracle Databaseインストレーション・ガイド』を参照してください。 |
PRODUCT_USER_PROFILE表を再作成するには、SYSTEMスキーマにある$ORACLE_HOME/sqlplus/admin/pupbld.sql
スクリプトを実行します。たとえば、次のコマンドを実行します。SYSTEM_PASSWORD
は、SYSTEMユーザーのパスワードです。
$ sqlplus
SQL> CONNECT SYSTEM
Enter password: system_password
SQL> @?/sqlplus/admin/pupbld.sql
また、$ORACLE_HOME/bin/pupbld
シェル・スクリプトを使用して、手動でPRODUCT_USER_PROFILE表をSYSTEMスキーマに再作成することもできます。このスクリプトは、SYSTEMパスワードを要求するプロンプトを表示します。プロンプトを表示せずにpupbld
スクリプトを実行する場合は、環境変数SYSTEM_PASS
にSYSTEMユーザー名とパスワードを設定します。
Oracle Databaseをインストールするか、またはOracle Database Configuration Assistantを使用してデータベースを作成する場合は、Oracle Databaseサンプル・スキーマをインストールできます。
関連項目: Oracle Databaseサンプル・スキーマのインストールと使用方法は、『Oracle Databaseサンプル・スキーマ』を参照してください。 |
この項では、SQL*Plusのコマンドライン・ヘルプのインストール方法と削除方法について説明します。
関連項目: SQL*Plusのコマンドライン・ヘルプの詳細は、『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 スクリプトは、新しい表を作成する前に、既存のコマンドライン・ヘルプの表を削除します。 |
この項では、コマンドラインSQL*Plusの使用方法について説明します。内容は次のとおりです。
SQL*PlusプロンプトでED
またはEDIT
コマンドを実行すると、ed
、emacs
、ned
、vi
などのオペレーティング・システム・エディタが起動します。ただし、環境変数PATH
には、エディタの実行可能ファイルが格納されているディレクトリを指定する必要があります。
エディタを起動すると、現行の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
のいずれも指定されていない場合、デフォルト・エディタはed
になります。
エディタを起動すると、SQL*Plusは一時ファイルafiedt.buf
を使用してエディタにテキストを渡します。SET EDITFILE
コマンドを使用すると、別のファイル名を指定できます。次に例を示します。
SQL> SET EDITFILE /tmp/myfile.sql
SQL*Plusは、一時ファイルを削除しません。
SQL*Plusプロンプトの後の最初の文字としてHOSTコマンドまたは感嘆符(!)を使用すると、後続の文字がサブシェルに渡されます。オペレーティング・システム・コマンドを実行するときに使用するシェルは、環境変数SHELL
によって設定されます。デフォルト・シェルはBourneシェルです。シェルが実行できない場合は、SQL*Plusによりエラー・メッセージが表示されます。
SQL*Plusに戻るには、exit
コマンドを実行するか、[Ctrl]+[D]を押します。
たとえば、1つのコマンドを実行するには、次のコマンド構文を使用します。
SQL> ! command
この例のcommand
は、実行するオペレーティング・システム・コマンドです。
SQL*Plusから複数のオペレーティング・システム・コマンドを実行するには、HOSTまたは!コマンドを実行します。オペレーティング・システム・プロンプトに戻るには、[Enter]を押します。
この項では、次のSQL*Plusの制限事項を説明します。
環境変数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ユーザーのパスワードです。