ACCEPT CLPPlus コマンド

ACCEPT CLPPlus コマンドは、指定された名前の変数を作成します。 その変数には、CLPPlus インターフェースの中で、または実行されるスクリプトの一部として読み取られるパラメーターを介して、対話式に値を代入できます。 ACCEPT コマンドは、SQL ステートメントまたは SQL バッファーでよく利用される値を保管するのに役立ちます。

デフォルトで、コマンドの出力は CLPPlus インターフェースの標準出力に表示されます。

呼び出し

このコマンドは、CLPPlus インターフェースから、または CLPPlus スクリプト・ファイルの中から実行する必要があります。

許可

なし

必要な接続

なし

コマンド構文

構文図を読む構文図をスキップするACCEPTACCvariable-nameFORMATformat-stringDEFAULTdefault-valuePROMPTtextHIDE

コマンド・パラメーター

variable-name
変数名を定義します。 スラッシュ (/) またはアットマーク (@) などの特殊記号および特殊文字は使用できません。

ACCEPT コマンドを発行すると、variable-name の値を入力するようプロンプトが表示されます。

FORMAT format-string
変数に割り当てられる書式を定義します。 変数に割り当てようとする値は、指定された書式に従わなければなりません。

文字変数の場合、format-string の値は An です。ここで、n は、変数の表示に使用できる文字の数を指定します。 指定された幅より大きい場合、データは折り返されます。

数値変数の場合、format-string の値は以下の 1 つ以上の文字になります。

$
先行ドル記号を表示します。
,
指定された位置にコンマを表示します。
.
指定された位置に小数点を表示します。
0
指定された位置にゼロを表示します。
9
指定された位置に有効数字を表示します。
フォーマット設定のオーバーフローが原因で有効数字が失われる場合、# 文字が表示されます。
DEFAULT default-value
ユーザーが入力を要求されたときに値を入力せずに ENTER キーを押したときに、このオプションで定義されたデフォルト値が変数に割り当てられます。
PROMPT text
ACCEPT コマンドが入力されたときに、このオプションで定義された値がプロンプトに表示されます。
HIDE
HIDE を指定すると、ユーザーが入力した値はコンソールにエコー出力されません。

以下の例では、ACCEPT コマンドは my_name という変数を作成し、値を入力するようプロンプトを表示します。 値 John Smith はこの変数に保管されます。 DEFINE コマンドはこの変数の値を表示します。

    SQL> ACCEPT my_name
    Enter value for my_name: John Smith
    SQL> DEFINE my_name
    DEFINE my_name = "John Smith"

次の例は、ACCEPT コマンドで使用されるすべてのオプションを示します。


    SQL> ACCEPT lname FORMAT A10 DEFAULT 'Joy' PROMPT 'Enter Last Name [Joy]:' HIDE

FORMAT オプ ションは、lname の値を長さ 10 文字の英数字と指定します。 ユーザーが入力を要求されたときに値を入力せず、ENTER キーを押したときに使用される DEFAULTJOY です。 ACCEPT コマンドが発行されたときのコマンド行のプロンプトは定義どおりに Enter Last Name [JOY]: になります。 この場合、デフォルトはプロンプトの一部となっています。 HIDE オプションは、 ユーザーがコンソールで lname の値として入力した値をエコー出力しません。

以下の例は、CLPPlus スクリプト・ファイルの中で ACCEPT コマンドを使用する方法、また、定義されている変数に値を代入する複数の異なる方法を示すものです。 これは average_salary.sql という名前のスクリプトであり、特定の部門に属する従業員 (employee) の給与 (salary) の平均を求めます。


ACCEPT dept_id PROMPT "Enter Department ID code : "
SELECT AVG(salary) FROM employee WHERE workdept = &dept_id;

このスクリプトを呼び出すには、2 つの異なる方法、つまり引数を指定する方法と引数を指定しない方法とがあります。

引数を指定して呼び出す場合、変数には、呼び出し時に渡される引数の値が代入されます。
SQL> start average_salary 'E21'

Original statement:SELECT AVG(salary) FROM employee WHERE workdept = &dept_id 
New statement with substitutions:SELECT AVG(salary) FROM employee WHERE workdept = 'E21'
                                         1
------------------------------------------
       47086.66666666666666666666666666667
引数なしで呼び出す場合、変数に値を代入するため、ユーザーの対話が必要になります。

SQL> start average_salary
Enter Department ID code : 'E21'

Original statement:SELECT AVG(salary) FROM employee WHERE workdept = &dept_id
New statement with substitutions:SELECT AVG(salary) FROM employee WHERE workdept = 'E21'
                                          1
 ------------------------------------------
        47086.66666666666666666666666666667