SQL*Plus > DEFINE

ユーザー定義変数を宣言する

DEFINE は置換変数の宣言と代入を行なうためのコマンド

  • 短縮形は DEF

SET DEFINE コマンド(DEFINE システム変数) は置換変数の接頭語を定義するための SQL*Plus コマンド

ユーザー定義変数と似た置換変数という用語がある。
置換変数とはユーザー定義変数、入力変数、引数と事前定義変数などをまとめた呼称。

DEFINE コマンド

DEFINE コマンドの構文

DEFINE [変数名 [ = 代入文字列 ]]

短縮形

DEF [変数名 [ = 代入文字列 ]]

DEFINE によるユーザー変数は単一行の文字列型のみ許される。複数行による代入文を使用すると改行箇所はスペース(' ')に変換される。

DEFINE 変数名 のように代入文字列を指定しないと変数の内容が表示される。

(注意)DEFINE によるユーザー定義変数はプロンプトの設定やカラムのヘッダ用に使用するためのもので SQL*Plus でのみ参照できる変数である。

ユーザーの入力をユーザー定義変数に代入

バインド変数とユーザー定義変数の間で値を代入する方法

ユーザー変数をバインド変数に代入するのは簡単にできるが、バインド変数をユーザー変数に代入するのはひと手間かかる。

---  バインド変数をユーザー定義変数に代入するのは簡単
SQL> variable bind_num    number
SQL> define   define_num = 999
SQL> EXECUTE :bind_num := &define_num ;
---
SQL> PRINT :bind_num
  BIND_NUM
----------
       999

バインド変数をユーザー定義変数に代入する

-- 準備
SQL> variable bind_num    number
SQL> EXECUTE :bind_num := 777;
...
-- SQL と COLUMN コマンドを使ってユーザー変数に代入
SQL> COLUMN num_alias NEW_VALUE define_num NOPRINT
SQL> SELECT :bind_num num_alias FROM DUAL ;
...
SQL> DEFINE define_num
DEFINE DEFINE_NUM      =        777 (NUMBER)


SQL*Plus 上だけで使用できる 事前定義されている変数

バインド変数

SQL(PL/SQL) とのやり取りする変数はバインド変数 VARIABLE を使用する。

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