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 の使用法 » ストアド・プロシージャとトリガ » プロシージャ、トリガ、バッチの使用 » プロシージャとトリガの構造

 

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

ストアド・プロシージャ・パラメータのデフォルト値は、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 を呼び出すこともできます。

CALL SampleProcedure( V1 );

この場合、パラメータの var2 var3 にはデフォルト値が使われます。

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

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

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

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