割り当てステートメント
代入ステートメントは、変数または配列エレメントに値を代入します。 例えば、ターゲット値は SQL パラメーターまたは SQL 変数にすることができます。
構文
説明
- ラベル
- assignment-statement のラベルを指定します。 ラベル名は、ルーチン名や拡張トリガー名と同じにしたり、同じ有効範囲内の別のラベルと同じにすることはできません。 詳細については、 SQL PLのSQLラベルへの参照を参照してください。
詳細は SET代入文を参照してください。
注
代入規則: SQL ルーチンおよびトリガー内の代入文は、SQL の代入規則に従う必要があります。 例えば、ターゲットとソースのデータ・タイプは互換性を持っ ていなければなりません。 代入規則については代入と比較を参照してください。
固定長の変数にストリングを割り当てる場合、そのストリングの長さがターゲットの長さ属性より短ければ、ストリングの右側に 1 バイトまたは 2 バイトのブランクを必要な数だけ埋め込みます。 変数にストリングを割り当てる場合に、 ストリングがその変数の長さ属性より長いときは、その値は切り捨てられ、警告が戻されます。
数値変数への割り当ての際に数値の整数部分の切り捨てが生じた場合には、 その値は切り捨てられ、警告が戻されます。
SQL プロシージャー用の SQL パラメーターを含む割り当て: IN パラメーターは、割り当てステートメントの左側でも右側でも指定できます。 呼び出し側に制御が戻ると、IN パラメーターの元の値が保存されます。 OUT パラメーターも、割り当てステートメントの左側でも右側でも指定できます。 最初に値を割り当てずに使用すると、値は未定義になります。 呼び出し側に制御が戻ると 、OUT パラメーターに割り当てられた最後の値が呼び出し側に戻されます。 INOUT パラメーターの場合、パラメーターの最初の値は呼び出し側によって決定され、パラメーターに割り当てられた最後の値が、呼び出し側に戻されます。
複数割り当て: 同じ割り当てステートメントに割り当てが複数含まれる場合は、すべての expressions を評価してから割り当てが実行されます。 この結果、式での SQL 変数または SQL パラメーターの参照では、割り当てステートメントにあるいずれの割り当てよりも前の時点の SQL 変数または SQL パラメーターの値が常に使用されます。
SQLSTATE 変数と SQLCODE SQL 変数に関する考慮事項: これらの変数への割り当ては禁止されていません。 ただし、この割り当ては、診断領域に影響せず、また条件ハンドラーを活動化しないので、お勧めできません。 さらに、これらの SQL 変数への割り当て処理を行うと、割り当てに指定した値が、その割り当てを行うステートメントの実行から戻される SQL 戻りコードでオーバーレイされてしまいます。
