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

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » ストアドプロシージャー、トリガー、バッチ、ユーザー定義関数 » プロシージャー、トリガー、ユーザー定義関数の構造

 

プロシージャーにパラメーターを渡す方法

ストアドプロシージャーパラメーターのデフォルト値は、CALL 文の 2 通りの形式のどちらでも使用できます。

CREATE PROCEDURE 文の引数リストの末尾にオプションのパラメーターがある場合、これらは CALL 文で省略できます。次に示すのは、INOUT パラメーターを 3 つ持つプロシージャーの例です。

CREATE PROCEDURE SampleProcedure( 
       INOUT var1 INT DEFAULT 1,
                     INOUT var2 int DEFAULT 2,
                     INOUT var3 int DEFAULT 3 )
...

この例では、プロシージャーを呼び出す環境で、プロシージャーに渡す数値を格納するための変数を 3 つ設定してあるものと想定しています。

CREATE VARIABLE V1 INT;
CREATE VARIABLE V2 INT;
CREATE VARIABLE V3 INT;

次に示すように、SampleProcedure プロシージャーは最初のパラメーターを指定するだけで呼び出せます。この場合、var2var3 にはデフォルト値が使用されます。

CALL SampleProcedure( V1 );

また、次のように、プロシージャーは最初のパラメーターには DEFAULT 値を使用して、2 番目のパラメーターのみを指定することによっても呼び出せます。

CALL SampleProcedure( DEFAULT, V2 );

オプションの引数を使ってプロシージャーを呼び出すよりも柔軟な方法は、パラメーターに名前を付けて渡すという方法です。このとき、SampleProcedure プロシージャーは次のように呼び出すことができます。

CALL SampleProcedure( var1 = V1, var3 = V3 );

または次のようになります。

CALL SampleProcedure( var3 = V3, var1 = V1 );