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) します。
RESULT 句を使用しないでプロシージャを作成し、そのプロシージャが変数結果セットを返す場合には、プロシージャを参照する SELECT 文の DESCRIBE が失敗することがあります。DESCRIBE の失敗を防ぐには、SELECT 文の FROM 句に WITH 句を含めることをおすすめします。または、DESCRIBE 文で WITH VARIABLE RESULT 句を使用できます。WITH VARIABLE RESUL 句は、各 OPEN 文の後にプロシージャ呼び出しを記述すべきかどうかを判断するのに使用できます。
ODBC 変数結果セットプロシージャは ODBC アプリケーションで使用できます。SQL Anywhere ODBC ドライバは、変数結果セットを正しく記述します。
Open Client アプリケーション Open Client アプリケーションは、変数結果セットプロシージャを使用できます。SQL Anywhere は、変数結果セットを正しく記述します。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |