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 の使用法 » ストアドプロシージャ、トリガ、バッチ、ユーザ定義関数 » 結果セット

 

結果をプロシージャのパラメータとして返す方法

プロシージャは、プロシージャのパラメータで呼び出しを行った環境に結果を返すことができます。次の文を使用して、プロシージャ内でパラメータと変数に値を割り当てることができます。

  • SET 文

    次に示すプロシージャは、SET 文を使用して OUT パラメータに値を割り当てて返します。次の文を実行するには、CREATE PROCEDURE システム権限を持っていることが必要です。



    CREATE PROCEDURE greater( 
       IN a INT,
       IN b INT,
       OUT c INT )
    BEGIN
       IF a > b THEN
          SET c = a;
       ELSE
          SET c = b;
       END IF ;
    END;
  • INTO 句を持つ SELECT 文

    「シングルロークエリ」がデータベースから取り出すローの数は多くても 1 つだけです。このタイプのクエリは SELECT 文に INTO 句を組み合わせて作成します。INTO 句は SELECT リストの後に続き、FROM 句より前に指定します。SELECT リストの各項目の値を受け取るための変数のリストが含まれます。変数は、SELECT リストの項目数と同じ数だけ用意します。

    SELECT 文が実行されると、データベースサーバは SELECT 文の結果を取り出して、変数に入れます。クエリの結果、複数のローが取り出されると、データベースサーバはエラーを返します。複数のローを返すクエリにはカーソルを使用します。

    クエリの結果、選択されたローが存在しない場合、変数は更新されず、警告が返されます。

    SELECT 文を実行するには、オブジェクトに対する適切な SELECT 権限を持っている必要があります。

 例 1:プロシージャを作成し、SELECT...INTO 文を使用してその結果を選択します。
 例 2:シングルロー SELECT 文の結果を返します。
 参照