Top > SQL*Plus > ACCEPT

ユーザーからの入力を行なう

ACCEPT は任意でメッセージを表示し、ユーザーからの入力を変数に格納するためのコマンド

  • 短縮形は ACC

データ型やフォーマットを指定した場合に型の不一致や最大列長を超える入力を行なうとエラーが表示されて正しい入力が行なわれるまで入力が繰り返される。

置換変数は事前に DEFINE で定義されていない場合でも使用時に定義される。

ACCEPT コマンド

ACCEPT コマンドの構文

ACCEPT 変数名 [データ型] [フォーマット] [デフォルト] [プロンプト] [HIDE]

短縮形

ACC 変数名 [データ型] [フォーマット] [デフォルト] [プロンプト] [HIDE]

使用できるデータ型は以下のとおり

  • NUM[BER]
  • CHAR
  • DATE
  • BINARY_FLOAT Oracle 10g
  • BINARY_DOUBLE Oracle 10g

使用できるフォーマット例

  • FORMAT An : n はバイト長の文字列 (※)
  • FORMAT 9999 : -9999 〜 9999
  • FORMAT YYYY-MM-DD : YYYY-MM-DD 形式の「正しい」日付

(※) 入力できる最大文字列長は 240 バイト(≠文字)。もし 240 バイトを超えるとよろしくない事になるようですが…

プロンプトにはユーザー入力をうながすメッセージを指定する

  • PROMPT 日付を入力してください

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>


日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー