タイプ HTTP の Web サービスプロシージャは、応答に関する全情報を 2 つのカラムから成る結果セットで返します。この結果セットには、応答ステータス、ヘッダ情報、および本文が含まれます。最初のカラムには Attribute、2 番目のカラムには Value という名前が付けられています。どちらも LONG VARCHAR データ型です。
結果セットには、応答ヘッダフィールドごとに 1 ロー、HTTP ステータス行 (Status 属性) に対して 1 ロー、応答本文 (Body 属性) に対して 1 ローが含まれます。
次の例は、一般的な応答を示します。
Attribute | Value |
---|---|
Status | HTTP /1.0 200 OK |
Body | <!DOCTYPE HTML ... ><HTML> ... </HTML> |
Content-Type | text/html |
Server | GWS/2.1 |
Content-Length | 2234 |
Date | Mon, 18 Oct 2004, 16:00:00 GMT |
例として使用する次の Web サービスストアドプロシージャを作成します。
CREATE OR REPLACE PROCEDURE SybaseWebPage() URL 'http://www.sybase.com/mobilize' TYPE 'HTTP'; |
結果セットとして Web サービスから応答を取得するには、次の SELECT クエリを実行します。
SELECT * FROM SybaseWebPage() WITH (Attribute LONG VARCHAR, Value LONG VARCHAR); |
Web サービスプロシージャでは結果セットの形式を記述しないので、テンポラリビューを定義するには WITH 句が必要です。
クエリの結果をテーブルに格納できます。テーブルを作成して結果セットの値を格納するには、次の SQL 文を実行します。
CREATE TABLE StoredResults( Attribute LONG VARCHAR, Value LONG VARCHAR ); |
結果セットは、次のように StoredResults テーブルに挿入します。
INSERT INTO StoredResults SELECT * FROM SybaseWebPage() WITH (Attribute LONG VARCHAR, Value LONG VARCHAR); |
SELECT 文の通常の構文に従い、句を追加できます。たとえば、結果セットの特定のローのみが必要な場合は、WHERE 句を追加して SELECT の結果を 1 つのローに限定することができます。
SELECT * FROM SybaseWebPage() WITH (Attribute LONG VARCHAR, Value LONG VARCHAR) WHERE Attribute = 'Status'; |
この SELECT 文は、結果セットからステータス情報のみを取得します。この文は呼び出しが成功したことを確認するために使用できます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |