SQL 解説書
割り当てステートメントは、出力パラメーター、ローカル変数、または特殊レジスターに値を割り当てます。
構文
>>-SET--+-parameter-name----+---=--+-expression-+--------------><
+-SQL-variable-name-+ '-NULL-------'
'-special-register--'
説明
- parameter-name
- 割り当てのターゲットとなるパラメーターを識別します。
そのパラメーターは、
CREATE PROCEDURE ステートメントの parameter-declaration で指定しなければならず、
さらに OUT または INOUT パラメーターとして定義しなければなりません。
- SQL-variable-name
- 割り当てのターゲットとなる SQL 変数を識別します。
SQL 変数は、使用する前に定義しなければなりません。
SQL 変数は複合ステートメントで定義できます。
- special-register
- 割り当てのターゲットとなる特殊レジスターを識別します。
特殊レジスターの値としてスキーマ名を使用する場合 (CURRENT FUNCTION PATH または CURRENT SCHEMA 特殊レジスターなど)、
割り当てパラメーターが SQL 変数かどうか、DB2 が判別します。
割り当てパラメーターが SQL 変数であれば、DB2 はその特殊レジスターに SQL 変数の値を割り当てます。
割り当てパラメーターが SQL 変数でなければ、DB2 はその割り当てパラメーターをスキーマ名とみなし、
その特殊レジスターにスキーマ名を割り当てます。
SQL プロシージャーの特殊レジスター値の初期設定は、そのプロシージャーの呼び出し側から継承します。
新しい設定を割り当てると、SQL プロシージャー全体のその値が設定されている部分で有効になり、
以降の呼び出しの際にもプロシージャーに継承されます。
プロシージャーが呼び出し側に戻されると、特殊レジスターは呼び出し側の元の設定に復元されます。
- expression または NULL
- 割り当てのソースとなる式または値を指定します。
規則
- SQL プロシージャーの割り当てステートメントは、
SQL 割り当て規則に準拠していなければなりません。
- ターゲットとソースのデータ・タイプは互換性がなければなりません。
- ストリングが固定長変数に割り当てられる際に、
ストリングの長さがターゲットの長さ属性よりも短い場合、
ストリングの右端に必要な数の 1 バイト、2 バイト、または UCS-2 のブランクが埋め込まれます。
- ストリングが変数に割り当てられる際に、ストリングが変数の長さ属性より長い場合、エラーが出されます。
- 変数に割り当てられるストリングは、必要なら、まずターゲットのコード・ページに変換されます。
- 数値変数の割り当てで、数値の部分すべてが切り捨てられると、エラーが発生します。
例
SQL 変数 p_salary を 10 % ずつ増加させます。
SET p_salary = p_salary + (p_salary * .10)
SQL 変数 p_salary をヌル値に設定します。
SET p_salary = NULL
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]