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

 

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

RESULT 句は、プロシージャでは省略可能です。RESULT 句を省略すると、実行方法に応じて、さまざまなカラム数またはカラム型の、異なる結果セットを返すプロシージャを記述できます。

変数結果セット機能を使用しない場合は、性能を高めるために RESULT 句を使用してください。

たとえば、次のプロシージャは、変数として Y を入力した場合は 2 カラムを、それ以外の場合は 1 カラムを返します。

CREATE PROCEDURE Names( IN formal char(1) )
BEGIN
   IF formal = 'y' THEN
      SELECT Surname, GivenName
      FROM Employees
   ELSE
      SELECT GivenName
      FROM Employees
   END IF
END;

クライアント・アプリケーションで使用しているインタフェースによっては、プロシージャでの変数結果セットの使用に制限があります。

  • Embedded SQL   正しい形式の結果セットを取得するには、結果セットのカーソルが開かれてからローが返されるまでの間に、プロシージャ・コールを記述 (DESCRIBE) します。

    DESCRIBE 文の詳細については、DESCRIBE 文 [Interactive SQL]を参照してください。

  • ODBC   変数結果セット・プロシージャは ODBC アプリケーションで使用できます。SQL Anywhere ODBC ドライバは、変数結果セットを正しく記述します。

  • Open Client アプリケーション   Open Client アプリケーションは、変数結果セット・プロシージャを使用できます。SQL Anywhere は、変数結果セットを正しく記述します。