Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 言語の要素 » 変数

 

ローカル変数

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 プロシージャの中の変数を参照してください。