各セッションで同じ設定を使用するように、SQL*Plus環境を設定できます。
この設定には、次の2つのオペレーティング・システム・ファイルを使用します。
glogin.sqlなどのサイト・プロファイル・ファイル。サイト全体の設定用です。
login.sqlなどのユーザー・プロファイル・ファイル。ユーザー固有の設定値を設定します。
これらのファイルの正確な名前は、システムによって異なります。
注意:
サイト・プロファイル・ファイルとユーザー・プロファイル・ファイルは、SQLPLUS
またはCONNECT
コマンドでOracle Databaseに正常に接続した後で、あるいは/NOLOG
を指定したときに実行されます。ALTER SESSION SET CONTAINER
を使用して別のPDBに切り替えると、サイト・プロファイル・ファイルとユーザー・プロファイル・ファイルは実行されません。
一部の権限での接続では、サイト・プロファイルまたはユーザー・プロファイルにSET SERVEROUTPUTまたはSET APPINFOコマンドが入力されていると、エラーが生成される場合があります。
次の表に、プロファイル・スクリプトを示し、コマンドライン・ユーザー・インタフェースに影響する一部のコマンドと設定を示します。
表2-2 SQL*Plusユーザー・インタフェースの設定に影響するプロファイル・スクリプト
スクリプトの内容 | コマンドラインで実行されるタイミング |
---|---|
サイト・プロファイル(glogin.sql) SQL*Plusスクリプトに含めることができる内容(システム変数設定やDBAが実装する他のグローバル設定など)はすべて含めることができます。 |
SQLPLUSコマンドまたはCONNECTコマンドからOracle Databaseへの正常な接続後 /NOLOGが指定された場合 |
ユーザー・プロファイル(login.sql) SQL*Plusスクリプトに含めることができる内容はすべて含めることができます。ただし、設定はユーザー・セッションにのみ適用可能です。 |
サイト・プロファイルの直後 |
表2-3 SQL*Plusユーザー・インタフェースの設定に影響するプロファイル・スクリプトのコマンド
プロファイル・スクリプト内のコマンド | コマンドラインに影響する操作 |
---|---|
SET SQLPLUSCOMPAT[IBILITY] {x.y[.z]} 「SQL*Plus互換性マトリックス」を参照。 |
DBAがこのサイトで希望する動作を実現するために、SQL*Plusの互換モードを設定した場合 |
SQLPLUSコマンド COMPATIBILITYオプション |
SET SQLPLUSCOMPATIBILITYコマンドが実行された場合(SQLPLUSコマンドのCOMPATIBILITYオプション付きで設定された場合以外) |
SQLPLUSコマンド RESTRICTオプション |
RESTRICTオプションを3に設定してSQL*Plusを起動すると、ユーザー・プロファイル・スクリプトが読み取られません。 |
サイト・プロファイル・スクリプトは、インストール中に作成されます。これは、SQL*Plusコマンドライン接続に対するサイト全体の動作を構成するために、データベース管理者が使用します。インストール中にインストールされたサイト・プロファイル・スクリプトは、空のスクリプトです。
サイト・プロファイル・スクリプトは、通常、glogin.sqlという名前です。ユーザーが、SQL*Plusセッションを開始し、Oracle Databaseとの接続が正常に確立されるたびに、SQL*Plusはこのスクリプトを実行します。
サイト・プロファイルを使用すると、DBAは、特定のSQL*Plusをインストールするすべてのユーザーに対して、サイト全体にわたるSQL*Plus環境のデフォルト値を設定できます。
ユーザーはサイト・プロファイルに直接アクセスできません。
SQL*Plusのコマンドライン接続の場合、SQL*Plusはユーザー・プロファイル・スクリプトもサポートします。ユーザー・プロファイルは、サイト・プロファイルの後に実行され、ユーザー・セッションの特別なカスタマイズを可能にします。ユーザー・プロファイル・スクリプトは、通常、login.sqlという名前です。SQL*Plusでは、カレント・ディレクトリのユーザー・プロファイル、次に、環境変数SQLPATHで指定されたディレクトリが検索されます。SQL*Plusでは、このコロンで区切られたディレクトリとそれらのサブディレクトリのリストが検索される際、ディレクトリとサブディレクトリがリストされている順で検索されます。
すべてのSQLコマンド、PL/SQLブロックまたはSQL*Plusコマンドをユーザー・プロファイルに追加できます。SQL*Plusを起動すると、自動的にユーザー・プロファイルが検索され、ユーザー・プロファイル内のコマンドが実行されます。
LOGINファイルは、他のすべてのスクリプトと同様に、変更が可能です。次のユーザー・プロファイル・スクリプトの例に、ユーザーが追加できる変更の一部を示します。
-- login.sql -- SQL*Plus user login startup file. -- -- This script is automatically run after glogin.sql -- -- To change the SQL*Plus prompt to display the current user, -- connection identifier and current time. -- First set the database date format to show the time. ALTER SESSION SET nls_date_format = 'HH:MI:SS'; -- SET the SQLPROMPT to include the _USER, _CONNECT_IDENTIFIER -- and _DATE variables. SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER _DATE> " -- To set the number of lines to display in a report page to 24. SET PAGESIZE 24 -- To set the number of characters to display on each report line to 78. SET LINESIZE 78 -- To set the number format used in a report to $99,999. SET NUMFORMAT $99,999
関連項目:
SQL*PlusのLOGINファイルに設定できる各種のSETコマンド変数の詳細は、「SET」コマンドを参照してください。
事前定義変数の詳細は、「事前定義変数の使用について」を参照してください。
STOREコマンドを使用すると、コマンドラインから、現行のSQL*Plusのシステム変数をスクリプトに格納できます。変数を変更した場合は、このスクリプトを実行して元の値に戻すことができます。この機能は、システム変数を変更するレポートを実行した後でシステム変数の値をリセットする場合に便利です。また、SQL*Plusを起動するたびにこれらのシステム変数が設定されるように、このスクリプトをユーザー・プロファイル・スクリプトに含めることもできます。
すべてのシステム変数の現行の設定を格納するには、次のように入力します。
STORE SET file_name
ファイル名とファイル拡張子を入力するか、またはデフォルトの拡張子.SQLを使用する場合は、ファイル名のみを入力します。SET SUF[FIX] {SQL | text}コマンドを使用して、デフォルトのファイル拡張子を変更することもできます。
格納済のシステム変数をリストアするには、次のように入力します。
START file_name
ファイルの拡張子がデフォルト(SET SUF[FIX] {SQL | text}コマンドで指定したもの)の場合は、ファイル名にピリオドおよび拡張子を追加する必要はありません。
@(アットマーク)または@@(二重アットマーク)コマンドを使用して、スクリプトを実行することもできます。
Created file plusenv
この時点で、任意のシステム変数の値を変更できます。
SHOW PAGESIZE
PAGESIZE 24
SET PAGESIZE 60 SHOW PAGESIZE
PAGESIZE 60
その後、システム変数の元の値をスクリプトからリストアできます。
START plusenv SHOW PAGESIZE
PAGESIZE 24
例2-1 SQL*Plusシステム変数の格納およびリストア
SQL*Plusシステム変数の現行の値を新しいスクリプトplusenv.sqlに格納するには、次のように入力します。
STORE SET plusenv
通常、コマンドライン・ヘルプは、Oracle Databaseのインストール中にインストールされます。インストールされていない場合は、データベース管理者がSQL*Plusコマンドライン・ヘルプ表を作成し、指定したSQLスクリプトをSQL*Plusから実行することによって、SQL*Plusヘルプ・データを作成した表に移入できます。
また、データベース管理者はSQL*PlusからSQLスクリプトを実行して、SQL*Plusコマンドライン・ヘルプ表を削除することもできます。
SQL*Plusヘルプをインストールまたは削除する前に、次のことを確認してください。
SQL*Plusがインストールされている。
環境変数ORACLE_HOMEが設定されている。
次のSQL*Plusヘルプ・スクリプト・ファイルがある。
HLPBLD.SQL - 新しいヘルプ表の削除および作成
HELPDROP.SQL - 既存のヘルプ表の削除
HELPUS.SQL - ヘルプ・データへのヘルプ表の移入
デフォルト以外のデータベースに接続する場合、同一のコンピュータか別のコンピュータかに関係なく、Oracle Netがインストールされ、データベース・リスナーが構成されて実行中である必要があります。Oracle Net Servicesは、SQL*Plusによって使用されます。
Oracle Net Servicesおよびデータベース・リスナーは、Oracle Databaseのインストール中に、デフォルトでインストールされます。Oracle Netのインストールおよび構成の詳細は、http://www.oracle.com/technology/documentation
にあるOracle Databaseのドキュメントを参照してください。