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

 

プロシージャの結果を結果セットとして返す

プロシージャは、個別のパラメータとして呼び出しを行った環境に結果を返すだけでなく、結果セットとして情報を返すこともできます。通常、結果セットになるのはクエリの結果です。次に示すプロシージャは、ある部署の従業員 1 人 1 人の給与をセットにして返します。

CREATE PROCEDURE SalaryList( IN department_id INT )
RESULT ( "Employee ID" INT, Salary NUMERIC(20,3) )
BEGIN
   SELECT EmployeeID, Salary
    FROM Employees
    WHERE Employees.DepartmentID = department_id;
END;

Interactive SQL から呼び出された場合、RESULT 句での名前はクエリの結果と一致し、表示される結果のカラムの見出しに使われます。

Interactive SQL からこのプロシージャをテストするには、部署名を指定して CALL 文を使います。Interactive SQL では、結果が [結果] ウィンドウ枠の [結果] タブに表示されます。

次を入力して、研究開発部 (部署 ID 100) の従業員の給与を表示します。

CALL SalaryList( 100 );
Employee ID Salary
102 45700.000
105 62000.000
160 57490.000
243 72995.000
... ...

[オプション] ウィンドウの [結果] タブでこのオプションを有効にした場合にのみ、Interactive SQL では複数の結果セットを返すことができます。各結果セットは [結果] ウィンドウ枠の個別のタブに表示されます。

参照