列COMMの書式モデルの終わりにゼロを指定すると、ある行のCOMMの値がゼロの場合、
空白のかわりにゼロが表示されます。書式モデルおよびCOLUMNコマンドの詳細は、
『Oracle8i SQLリファレンス』の第4章を参照してください。
この時点で、次のようにSAVEコマンドを使用し、拡張子SQLが付いたSALESというファ イルに問合せを格納してください。
SQL> SAVE SALES Created file SALES
問合せの終わりにセミコロンを入力しないでください。セミコロンを挿入した場合、
SQL*Plusはバッファの内容を実行しようとします。SQL*Plusは、バッファ内にSQLコマ
ンドのみが入っているとみなすため、バッファ内のSQL*Plusコマンドはエラーを生成しま す。コマンド・ファイルの実行方法については、この章の後半で説明します。
複数のSQLコマンドを入力するには、すべてのSQLコマンドを、セミコロンを付けずに入 力します。その後、APPENDを使用して最後のコマンドを除くすべてのコマンドにセミコ ロンを追加します。(SAVEは、ファイルの終わりに自動的にスラッシュを追加します。この スラッシュは、コマンド・ファイルが実行されたときに最後のコマンドを実行するよう
SQL*Plusに指示します。)
複数のPL/SQLブロックを入力するには、ブロックとブロックの間の行にピリオドまたはス
ラッシュを挿入せずに、次々にブロックを入力します。その後、最後のブロックを除く各ブ ロックについて、そのブロックの最終行をリスト表示してカレント行にし、次の書式の
INPUTを使用しスラッシュのみの1行を挿入します。
INPUT /
システム・エディタを使用したコマンド・ファイルの作成 システム・エディタを使用したコマンド・ファイルの作成 システム・エディタを使用したコマンド・ファイルの作成 システム・エディタを使用したコマンド・ファイルの作成
ホスト・オペレーティング・システムのテキスト・エディタを使用してコマンド・ファイル を作成するには、次のようにEDITを入力し、その後にファイル名を入力します。
SQL> EDIT SALES
SAVEコマンドと同様、EDITは、ファイル名に拡張子SQLを追加します。ただし、ユー ザーがファイル名の終わりにピリオドと別の拡張子を入力した場合は除きます。テキスト・
エディタを使用してコマンド・ファイルを保存する場合、そのコマンド・ファイルは、同じ ファイルに戻されます。
各SQLコマンドの終わりにはセミコロンを、また、ファイル内の各PL/SQLブロックの後 にピリオドのみの1行をそれぞれ挿入する必要があります(複数のSQLコマンドおよび
PL/SQLブロックを挿入できます)。
EDITを使用してコマンド・ファイルを作成する場合、ファイルの終わりにSQL*Plusコマン ドを挿入することもできます。ただし、これはSAVEコマンドを使用してコマンド・ファイ ルを作成するときにはできません。SAVEコマンドを使用すると、ファイルの終わりにス ラッシュが追加されるためです。このスラッシュがあると、SQL*Plusはコマンド・ファイ ルを2回実行します。1回は最後のSQLコマンドの終わりでセミコロン(または最後の
PL/SQLブロックの後にスラッシュ)を検出したとき、もう1回はファイルの終わりでス
ラッシュを検出したときです。
コマンド・ファイルへのコメントの挿入 コマンド・ファイルへのコメントの挿入 コマンド・ファイルへのコメントの挿入 コマンド・ファイルへのコメントの挿入
コマンド・ファイルにコメントを入力するには、次の3つの方法があります。
■ SQL*PlusのREMARKコマンドを使用する
■ SQLのコメント・デリミタ/* ...*/を使用する
■ ANSI/ISO(米国規格協会/国際標準化機構)のコメント--を使用する
この3つの方法のいずれかでコメントして識別されたものは、SQL*Plusでは解析されず、
実行もできません。
REMARK コマンドの使用方法 コマンドの使用方法 コマンドの使用方法 コマンドの使用方法
REMARKコマンドは、コマンド・ファイル内の1行に指定し、同じ行にコメントを続けま
す。コメントを次の行に継続するには、追加のREMARKコマンドを入力します。1つの SQLコマンドで、行と行の間にREMARKコマンドを挿入しないでください。
REMARK Commissions report REMARK to be run monthly.
COLUMN ENAME HEADING SALESMAN
COLUMN SAL HEADING SALARY FORMAT $99,999 COLUMN COMM HEADING COMMISSION FORMAT $99,990 REMARK Includes only salesmen.
SELECT EMPNO, ENAME, SAL, COMM FROM EMP
WHERE JOB = 'SALESMAN'
/*...*/ の使用方法 の使用方法 の使用方法 の使用方法
SQLのコメント・デリミタ、/*...*/は、コマンド・ファイル内の独立した行に入力するか、
SQLコマンドと同じ行に入力するか、またはブロック内の行に入力します。
コメントは、次のように複数の行にわたっていてもかまいませんが、コメント内にコメント をネストさせることはできません。
/* Commissions report to be run monthly. */
COLUMN ENAME HEADING SALESMAN
COLUMN SAL HEADING SALARY FORMAT $99,999 COLUMN COMM HEADING COMMISSION FORMAT $99,990
注意 注意注意
注意: 同じ行でセミコロンの後にコメントを入力することはできません。
SELECT EMPNO, ENAME, SAL, COMM FROM EMP
WHERE JOB = 'SALESMAN' /* Includes only salesmen. */
SQLコメントをコマンド・プロンプトで直接入力する場合、SQL*Plusはそのコメントを バッファ内に格納しません。
- - の使用方法 の使用方法 の使用方法 の使用方法
SQL文、PL/SQLブロック、またはSQL*Plusコマンドの中で、ANSI/ISOの「--」スタイ ルのコメントを使用することができます。終わりのデリミタはないので、コメントを複数の 行にわたって入力することはできません。PL/SQLおよびSQLの場合、次のように、ある 行のコマンドの後にコメントを入力するか、コメントのみを1行にして入力します。
-- Commissions report to be run monthly DECLARE --block for reporting monthly sales
SQL*Plusコマンドで「--」を使用してコメントを挿入できるのは、その行全体がコメントで
ある場合のみです。たとえば、次のコメントは有効です。
--set maximum width for LONG to 777 SET LONG 777
-- set the heading for ENAME to be SALESMAN COLUMN ENAME HEADING SALESMAN
次のコメントは無効です。
SET LONG 777 -- set maximum width for LONG to 777 SET -- set maximum width for LONG to 777 LONG 777
次のSQL*Plusコマンドを入力した場合、このコマンドはコメントとして扱われ、実行され
ません。
-- SET LONG 777
コマンド・ファイルの取出し コマンド・ファイルの取出し コマンド・ファイルの取出し コマンド・ファイルの取出し
コマンド・ファイルの内容をバッファ内に入れる場合は、そのコマンドが格納されている ファイルからコマンドを取り出す必要があります。SQL*PlusコマンドのGETを使用し、コ マンド・ファイルを取り出します。
バッファ内にある問合せをSAVEコマンドでファイルに保存するのと同様に、GETコマンド を使用してファイル内の問合せをバッファに取り出すことができます。
SQL> GET file_name
一部のオペレーティング・システムでは、SQL*Plusによってファイル名にピリオドと拡張 子SQLが追加されます。ただし、ユーザーがファイル名の終わりにピリオドと別の拡張子 を入力した場合は除きます。
例 例例
例3-8 コマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出しコマンド・ファイルの取出し
たとえば、後のセッションでSALESファイルを取り出す必要があるとします。ファイルは、
GETコマンドを入力することによって取り出すことができます。ファイルSALESを取り出 すには、次のように入力します。
SQL> GET SALES
1 COLUMN ENAME HEADING SALESMAN
2 COLUMN SAL HEADING SALARY FORMAT $99,999