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 の使用法 » ストアド・プロシージャとトリガ » プロシージャ、トリガ、バッチの使用 » プロシージャから返される結果

 

プロシージャから複数の結果セットを返す

Interactive SQL が複数の結果セットを返すように設定するには、[オプション] ウィンドウの [結果] タブのこのオプションをオンに設定する必要があります。デフォルトでは、このオプションはオフに設定されます。設定を変更する場合、変更された設定は新しく接続を行うときに有効になります (新しいウィンドウなど)。

♦  複数の結果セット機能を有効にするには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとしてデータベースに接続します。

  2. 左ウィンドウ枠でデータベースを選択し、[ファイル] - [Interactive SQL を開く] を選択します。

  3. Interactive SQL で、[ツール] - [オプション] を選択します。

  4. [SQL Anywhere] をクリックします。

  5. [結果] タブで、[すべての結果セットを表示] を選択します。

  6. [OK] をクリックします。

このオプションを有効にすると、プロシージャは呼び出しを行った環境に複数の結果セットを返すことができます。RESULT 句を使う場合、結果セットはそれに合わせなければなりません。つまり、結果セットは SELECT 文のリストと同じ数の項目を持ち、データ型は RESULT 句にリストされたデータ型に自動的に変換されます。

次の例は、すべての従業員、顧客、連絡先の名前をリストするプロシージャです。

CREATE PROCEDURE ListPeople()
RESULT ( Surname CHAR(36), GivenName CHAR(36) )
BEGIN
   SELECT Surname, GivenName
   FROM Employees;
   SELECT Surname, GivenName
   FROM Customers;
   SELECT Surname, GivenName
   FROM Contacts;
END;

Interactive SQL でこのプロシージャをテストし、複数の結果セットを表示するには、[SQL 文] ウィンドウ枠で次の文を入力します。

CALL ListPeople ();