ユーザーからの入力を行なう
ACCEPT は任意でメッセージを表示し、ユーザーからの入力を変数に格納するためのコマンド
データ型やフォーマットを指定した場合に型の不一致や最大列長を超える入力を行なうとエラーが表示されて正しい入力が行なわれるまで入力が繰り返される。
置換変数は事前に DEFINE で定義されていない場合でも使用時に定義される。
ACCEPT コマンド
ACCEPT コマンドの構文
ACCEPT 変数名 [データ型] [フォーマット] [デフォルト] [プロンプト] [HIDE]
短縮形
ACC 変数名 [データ型] [フォーマット] [デフォルト] [プロンプト] [HIDE]
使用できるデータ型は以下のとおり
- NUM[BER]
- CHAR
- DATE
- BINARY_FLOAT
- BINARY_DOUBLE
使用できるフォーマット例
- FORMAT An : n はバイト長の文字列 (※)
- FORMAT 9999 : -9999 〜 9999
- FORMAT YYYY-MM-DD : YYYY-MM-DD 形式の「正しい」日付
(※) 入力できる最大文字列長は 240 バイト(≠文字)。もし 240 バイトを超えるとよろしくない事になるようですが…
プロンプトにはユーザー入力をうながすメッセージを指定する
HIDE
- HIDE は入力文字をエコーバックされたくない場合に指定する。指定すると画面上には入力文字(* などの代替文字も)表示されない。
ACCEPT 使用例
8文字以内のパスワードを入力してデータを取り出す例
accept.sql
ACCEPT USER_PASS CHAR FORMAT A8 -
PROMPT パスワードを入力してください HIDE
-- 複数行に渡って コマンドを記述するにはハイフン(-) を行末に記述する
--
whenever sqlerror exit failure rollback
connect rivus/&user_pass.
prompt ログインしました
select * from account;
quit
ログインに失敗すると whenever sqlerror により異常終了する
SQL> @accept
パスワードを入力してください
接続されました。
ログインしました
ID USER_NAME
---------- ----------------------------------------
1 松村 大和
2 小柳 豊
3 鹿島 里奈
4 東野 美桜
5 長谷川 菜子
...
SQL>