SQL Anywhere ではローカル変数をサポートしています。ローカル変数は DECLARE 文で宣言し、複合文 (BEGIN キーワードと END キーワードで囲まれたブロック) の中でのみ使用できます。SQL Anywhere では、各 DECLARE 文で宣言できる変数は 1 つのみです。
DECLARE が複合文で実行される場合、スコープは複合文に制限されます。
変数の初期設定値は NULL です。変数の値は、SET 文で設定するか、INTO 句のある SELECT 文で割り当てることができます。
DECLARE 文の構文は、次のとおりです。
DECLARE variable-name data-type |
ローカル変数は、プロシージャが複合文中から呼び出されるかぎり、プロシージャへ引数として引き渡すことができます。
次のバッチは、ローカル変数の使用例を示します。
BEGIN DECLARE local_var INT; SET local_var = 10; MESSAGE 'local_var = ', local_var TO CLIENT; END |
Interactive SQL からこのバッチを実行すると、[Interactive SQL メッセージ] タブにメッセージ local_var = 10
が表示されます。
変数 local_var は、変数が宣言された複合文の外側には存在しません。次のバッチは無効で、「column not found
」(カラムが見つかりません) エラーになります。
-- This batch is invalid. BEGIN DECLARE local_var INT; SET local_var = 10; END; MESSAGE 'local_var = ', local_var TO CLIENT; |
次の例は、INTO 句のある SELECT 文を使用してローカル変数を設定する方法を示します。
BEGIN DECLARE local_var INT; SELECT 10 INTO local_var; MESSAGE 'local_var = ', local_var TO CLIENT; END |
Interactive SQL からこのバッチを実行すると、データベース・サーバ・メッセージ・ウィンドウにメッセージ local_var = 10
が表示されます。
バッチとローカル変数のスコープの詳細については、Transact-SQL プロシージャの中の変数を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |