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

SAP Sybase SQL Anywhere 16.0 » 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 );