トップページ >  SQL*Plus >  標準入力をユーザ変数に格納する
初版2005/06/09: 最終更新日2005/06/09
  標準入力をユーザ変数に格納する
標準入力をユーザ変数に格納する
acceptコマンドは、ユーザ変数を作成し、そのユーザ変数にキーボードからの入力を格納します。

acc[ept] a

と入力するとaというユーザ変数が作成され、ユーザ入力待ち状態になるので変数に格納する値を入力してEnterを押すと、変数aに入力した値が格納されます。
たとえば、変数aに10を格納したい場合は

SQL> accept a
10
SQL>
というように入力します。

accept a num[ber]

と入力するとユーザ変数aが作成され、aに数値を格納することができ、ユーザ入力待ち状態になるので、数値を入力します。
数値以外の値(たとえばbb)を格納しようとした場合「"bb"は有効なNUMBERではありません」というエラーが表示され、再びユーザ入力待ち状態になります。
数値を入力するとプロンプトが表示されます。
変数のデータ型の指定はnumber,char,dateの3つです。指定しない場合、デフォルトはchar型になります。
さらに型だけでなく、文字列の桁数や数値形式などの書といった細かい指定をしたい場合、formatオプションを使用します。
formatオプションはcolumnコマンドのformatオプションと同じなので詳しくはこちらをご覧ください。
以下はformatを指定した例です。

SQL> accept a char format a2
ddd
formatで指定した書式と異なる値を指定した場合は"ddd"は入力形式 "a2"と一致しません。」というエラーが表示され、再度入力を求められます。

accept a def[ault] d と入力するとユーザ入力待ち状態になります。ここでユーザが何も入力しなかった場合に変数aにdが格納されます。変数aの値はデフォルトではdですという意味です。

accept a prompt 表示したい文字列 と入力するとユーザーからの入力を受けつける前に、画面に表示したい文字列が表示されます。

SQL> accept a prompt input:
input:10
SQL>
acceptコマンドはコマンドファイル内でよく使用されます。