データ サービス開発者ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

クエリ関数のテストとクエリ プランの表示

テスト ビューを使用すると、使用可能なデータに対してデータ サービスの読み取り関数や関係関数を実行できます。

テスト ビューでのクエリの実行結果は、編集可能なウィンドウにテキスト形式または構造化された XML 形式で表示されます。 データが更新可能な場合は、バックエンド データを即座に更新できます。 また、クエリ結果を他のクエリの複合パラメータとして使用することもできます。

BEA Aqualogic Data Services Platform では、クエリ関数のサポートの作成において、クエリ関数のシグネチャに基づいてテスト ビュー オプションが判別されます。 クエリ関数のシグネチャとしては、パラメータがあるかないか、単純パラメータか複合パラメータか、アド ホック クエリかどうか、などがサポートされます。

この章の主な内容は以下のとおりです。

 


テスト ビューを使用したクエリの実行

テスト ビューでは、データ サービスに定義された読み取り関数や関係関数 (またはプロシージャ) をドロップダウン リストから選択できます。

図 7-1 単純なパラメータを取る関数のテスト ビュー オプション

単純なパラメータを取る関数のテスト ビュー オプション

複合パラメータを取るクエリの場合は、パラメータ エントリ ダイアログが図 7-2 のように自動的に調整されます。

単純なパラメータを取る関数のテスト ビュー オプション

図 7-2 入力として複合パラメータを取る関数

入力として複合パラメータを取る関数

テスト ビューの使用

テスト ビューを使用するには、次の手順に従います。

  1. [テスト ビュー] タブを選択し、プルダウン メニューから関数を選択します。 メニューには、現在のデータ サービスの読み取り関数とナビゲーション関数、およびデータ サービスのプロシージャが表示されます。
  2. パラメータを入力する必要がある場合は入力します。
  3. [実行] をクリックしてクエリを実行し、その結果を確認します。
  4. バックエンド データへの書き込みパーミッションがある場合は、データに変更を加えることもできます。 その場合は、[編集] をクリックして必要な変更を加えます。 変更が完了したら、[送信] をクリックしてデータを更新します。

生成されたクエリは、[出力] ウィンドウで確認できます。 詳細については、「クエリのパフォーマンスを監査する」を参照してください。

パラメータが必要ないクエリを実行する

getCustomer() のようなパラメータを取らないクエリの場合は、パラメータを指定する必要はありません (図 7-3)。

図 7-3 パラメータのないクエリ

パラメータのないクエリ

クエリを実行するには [実行] をクリックします。

結果は、テキスト形式または XML 形式で返されます。 複合要素 (この場合はテーブル表現) の横にあるプラス記号 (+) をクリックすると、より詳細な結果が表示されます。

結果を編集する

適切な更新パーミッション (「サンドボックス」テスト環境では付与されるのが一般的) が付与されている場合は、編集コマンドを使用して結果を直接編集できます (図 7-4)。

図 7-4 クエリ結果の編集

クエリ結果の編集

編集モードでは、レコードを追加することも可能です。

図 7-5 データ セットへのレコードの追加

データ セットへのレコードの追加

[追加] ボタンをクリックすると、ルート XML 型の構造がデータ セットの末尾に追加されます。 もちろん、レコードの中身を入力する必要があります。 新しいレコードのルート要素を右クリックして、複合子要素を追加することもできます。

変更が完了したら [送信] をクリックします。

単純なパラメータを持つクエリ関数を実行する

クエリに 1 つまたは複数の単純型パラメータがある場合、テスト ビューにはパラメータを入力するためのフィールドが表示されます。フィールドには、各パラメータの名前と型が示されています。

図 7-6 入力パラメータが 2 つある関数

入力パラメータが 2 つある関数

クエリの実行、および結果の編集や送信については、「パラメータが必要ないクエリを実行する」を参照してください。

複合パラメータを持つクエリ関数をテストする

エンタープライズ規模のクエリの多くでは、入力として複合型のパラメータが必要になります。 たとえば、在庫クエリであれば、受注の詳細を提供する Web サービスに基づいたパラメータのセットが必要になるでしょう。 通常は、たくさんのパラメータを個別に指定するよりも、単純にオブジェクト全体を渡すほうが簡単です。

クエリに複合パラメータを入力する必要がある場合は、プルダウン リストの関数が次のように表示されます。

getProfileView(arg)

arg パラメータは、複合型のパラメータが必要であることを示します。

このようなパラメータの場合は、テスト ビューに以下の操作を実行できるボックスが表示されます (図 7-2)。

以前の結果を入力として使用する

以前実行したクエリの結果を、データ サービスへの入力として使用できます。 ナビゲーション関数では複合パラメータが必要になるのが一般的であるため、この方法はナビゲーション関数を呼び出す際には特に便利です。

注意 : 以前の結果を貼り付ける際に注意が必要なのは、パラメータとして単一のオブジェクトを取る関数への入力として、複数の結果 (配列) を返すクエリを使用することはできない点です。 たとえば、特定の顧客の注文を取得する関数は、通常は複数の注文を返します。 これらの結果を、特定の顧客に関する情報を返す関数への入力として使用することはできません。

次の手順では、シングルトン クエリの結果を複合パラメータの入力として再利用する方法を示します。

  1. この手順では、最初に特定の注文に関する情報を選択するための単純なクエリを実行します。 次に、その注文を発注した顧客に関する情報を追加で取得します。
  2. 後に示す結果には、次の関数によって呼び出される要素が含まれています。

    getElecOrderByOrdID(ORDER_ID)

    この関数は、RTLServices/ElecOrder データ サービスに含まれています。

  3. テスト ビューのパラメータ領域に、有効な注文 ID (たとえば「ORDER_1_0」) を入力します。
  4. 図 7-7 パラメータ化された単純なクエリの実行


    パラメータ化された単純なクエリの実行

  5. 実行結果には、次に実行するクエリで必要になる顧客 ID が含まれています。選択可能な関数のドロップダウン リストから getCustomer() 関係関数を選択します。
  6. [結果を貼り付け] ボタンをクリックします。 以前のクエリ結果が、編集可能な複合パラメータとして XML 形式で挿入されます (図 7-8)。
  7. 図 7-8 新しいクエリでのクエリ結果の使用


    新しいクエリでのクエリ結果の使用

    注意 : クエリ結果は、シングルトン要素の配列として返されています (図 7-8 の強調表示部分)。 ナビゲーション関数を正常に実行するには、実行前に配列要素を削除する必要があります。
  8. 貼り付けた結果を編集して、ArrayOfELEC_ORDER 要素を削除します。 XML ドキュメントの一番外側の要素は次のようになっています。
  9. <ns0:ArrayOfELEC_ORDER xmlns:ns0="urn:retailerType">
    <ns0:ELEC_ORDER TYPE="ELEC">
    <OrderID>ORDER_1_0</OrderID>
    ...
    </ns0:ELEC_ORDER>
    </ns0:ArrayOfELEC_ORDER>

    これを次のように変更します。

    		<ns0:ELEC_ORDER TYPE="ELEC" xmlns:ns0="urn:retailerType">
    <OrderID>ORDER_1_0</OrderID>
    ...
    </ns0:ELEC_ORDER>
  10. [実行] をクリックします。 Customer XML 型に基づく新しいクエリの結果が表示されます (図 7-9)。
  11. 図 7-9 複合パラメータ化されたクエリの結果


    複合パラメータ化されたクエリの結果

XML 型を使用して入力パラメータを指定する

データ サービスの XML 型のテンプレートを自動的に挿入することもできます。 図 7-10 では、テンプレートを使用して顧客 ID (CUSTOMER3) と注文 ID (ORDER_3_0) を指定しています。 実行結果も表示されています。

図 7-10 XML 型のテンプレートを使用したパラメータの入力

XML 型のテンプレートを使用したパラメータの入力

テンプレート パラメータは、クエリに必要なキー パラメータがあらかじめ分かっている場合に便利です。

クエリの実行、および結果の編集や送信については、「パラメータが必要ないクエリを実行する」を参照してください。

AquaLogic Data Services Platform のプロシージャをテストする

テスト ビューでは、関数の選択に使用するドロップダウン リスト ([関数を選択してください :]) から、プロシージャを選択して実行することもできます。 テスト ビューでプロシージャ実行する場合は、そのプロシージャがデータや確認メッセージ (たとえば、操作が正常に完了したかどうかを示すメッセージ) を返す場合にのみ結果が表示されます。

配列の結果を制限する

テスト ビューでクエリ結果をフィルタ処理し、単一の要素の n 個のインスタンスのみ (たとえば、5,000 件の顧客配列の最初の 5 件のみ) を表示することができます。

図 7-11 では、RTLServices/Address/getAddress() の結果を 3 件の Address 要素に制限しています。 このような制限を設定しない場合は、すべての顧客レコードが返されます。

図 7-11 配列結果の要素の制限

配列結果の要素の制限

クライアント トランザクション オプションを開始する

クライアント トランザクション オプションでは、XA トランザクション ドライバを使用して複数 (2 つ以上) のリレーショナル ソースをクエリする関数がサポートされます。 このオプションは、デフォルトでは有効になっていません (つまり、NotSupported EJB トランザクション メソッドが使用されます)。 このオプションを有効にした場合は、Required トランザクション モードが使用されます。

詳細については、WebLogic Server ドキュメントの「EJB アプリケーションのトランザクション」を参照してください。

結果を検証する

[結果の検証] チェック ボックス (図 7-11) を選択しておくと、テスト ビューの結果がデータ サービスのスキーマ ファイルに対して検証されます。 以下の条件に当てはまる場合は無効と表示されます。

無効な結果は、[出力] ウィンドウで報告されます。 結果が無効になった場合の対処としては、戻り値型を訂正するか、訂正した新しいスキーマを戻り値型に関連付けます。 詳細については、「戻り値型を検証して保存する」を参照してください。

注意 : クエリの結果を編集する前に、必ず結果を再検証する必要があります。 その場合の条件は、[結果の検証] オプションの条件と同じです。
注意 : XMLBean の validate() メソッドで結果を検証することもできます。詳細については次のドキュメントを参照してください。

http://edocs.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/workshop/java-class/com/bea/xml/XmlObject.html#validate()

実行中のクエリを終了する

実行中のクエリは、AquaLogic Data Services Platform Console から終了させることができます。また、サーバ プロセスを終了すると、実行中のクエリも終了します。 一方、選択内容を変更することで、新しいクエリをテスト ビューから実行できます。

クエリのパフォーマンスを監査する

クエリのパフォーマンスを監査するには、アプリケーションの監査を有効にします。 アプリケーションの監査は AquaLogic Data Services Platform Console から有効にできます。ただし、これは 1 回きりの操作です。

AquaLogic Data Services Platform の監査を有効にした状態でテスト ビューからクエリ関数を呼び出すと、WebLogic Workshop の [出力] ビュー ([表示|ウィンドウ|出力]) に検証とパフォーマンスの基本情報が表示されます。 [出力] ペインでは、最後に実行したクエリの結果が最下部に表示されます。

注意 : 監査の有効化および監査オプションの調整については、AquaLogic Data Services Platform の『管理ガイド』の「監査情報およびログ情報の操作」を参照してください。

デフォルトでは、監査の結果として、クエリのコンパイル時間と実行時間、ユーザ、サーバなどの情報が表示されます (図 7-12)。

図 7-12 [出力] ウィンドウに表示された監査結果

[出力] ウィンドウに表示された監査結果

注意 : 関数をテスト ビューから実行した場合、クエリ プラン監査プロパティは収集されません。 これは、テスト ビューで実行した関数には、関数キャッシュが使用されないためです。

テスト ビューでアド ホック クエリを実行する

クエリをすばやく入力してテストすることも可能です。 どのデータ サービスのテスト ビューでも同じことが可能です。 その場合は、選択可能な関数のプルダウン リストから [アド ホック XQuery] オプションを選択します (図 7-21)。

図 7-13 テスト ビューでのアド ホック クエリ オプションの選択

テスト ビューでのアド ホック クエリ オプションの選択

アド ホック クエリは、その名前が示すとおり、現在選択されているデータ サービスに固有のクエリではありません。

注意 : アド ホック クエリは、それを作成したときにアクティブだったデータ サービスがテスト ビューで開かれている間は常に使用できます。 ただし、アド ホック クエリはソース ビューには表示されません。アド ホック クエリを保存するには、テキストをコピーして外部アプリケーションに貼り付ける必要があります。
アド ホック XQuery の例

図 7-22 に、アド ホック XQuery の例を示します。 現在のデータ サービスのコンストラクタ関数 (DataServices/CustomerDB/CUSTOMER) が使用されていますが、これがなくてもクエリの実行に支障はありません。

図 7-14 テスト ビューでのアド ホック XQuery の作成

テスト ビューでのアド ホック XQuery の作成

クエリに単純型または複合型のパラメータが必要な場合は、[パラメータの表示] ボタンを使用してエクスポーズできます。

クエリによって返されるデータがある場合は、[実行] ボタンの下の [結果] ペインに表示されます。

RTLApp サンプル アプリケーションを実行している場合は、コード リスト 7-2 のコードを任意のデータ サービスのアド ホック クエリ ペインにコピーして実行できます。

このアド ホック クエリは、実行に少し時間がかかるように設計されています (このクエリを使用して、AquaLogic Data Services Platform Console によるクエリのモニタや実行の停止を試すこともできます)。

ヒント : テスト ビューでクエリを実行するためには、AquaLogic Data Services Platform Console の [全般] タブで、アプリケーションの [アクセス制御の確認] の選択を解除しておく必要があります。

詳細については、『管理ガイド』の「AquaLogic Data Services Platform アプリケーションのコンフィグレーション」を参照してください。
コード リスト 7-1 RTLApp のテスト ビューで実行できるサンプル アド ホック クエリ
import schema namespace ns2="urn:retailerType" at "ld:DataServices/RTLServices/schemas/CustomerProfile.xsd";

declare namespace ns9="ld:DataServices/RTLServices/Customer";

declare function ns9:getCustomerSlowly() as element(ns2:CUSTOMER_PROFILE)* {

for $CUSTOMER_PROFILE in ns9:getCustomer(),
$c1 in ns9:getCustomer()[CustomerID lt $CUSTOMER_PROFILE/CustomerID],
$c2 in ns9:getCustomer()[CustomerID gt $CUSTOMER_PROFILE/CustomerID],
$c3 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID],
$c4 in ns9:getCustomer()[CustomerID lt $CUSTOMER_PROFILE/CustomerID],
$c5 in ns9:getCustomer()[CustomerID gt $CUSTOMER_PROFILE/CustomerID],
$c6 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID],
$c7 in ns9:getCustomer()[CustomerID = $CUSTOMER_PROFILE/CustomerID],
$c8 in ns9:getCustomer()[CustomerID != $CUSTOMER_PROFILE/CustomerID],
$c9 in ns9:getCustomer()[CustomerID = $CUSTOMER_PROFILE/CustomerID],
$c10 in ns9:getCustomer()[CustomerID !=

$CUSTOMER_PROFILE/CustomerID],
$c11 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID],
$c12 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID]
return $CUSTOMER_PROFILE
};
ns9:getCustomerSlowly()

アド ホック クエリの入力が完了したら、そのクエリ プランを確認できます。 「アド ホック クエリ プランの取得」を参照してください。

 


クエリ プラン ビューの使用

クエリの設計やパフォーマンスを分析する場合、以下の 2 種類の情報を利用できます。

クエリ プラン ビューは、クエリがどのように設計されているかを理解するのに便利です。 表示されたプランは、右クリック メニュー オプションを使用して、印刷したり、XML 形式でファイルに保存したりできます。

データ サービスのすべての関数のクエリ プランを取得できます。 テスト ビューの場合と同じように、[クエリ プラン] ビューを選択して関数を選択するだけです。 また、XQuery または SQL のアド ホック クエリ プランを取得することも可能です。

注意 : 詳細については、「アド ホック クエリ プランの取得」を参照してください。 また、AquaLogic Data Services Platform には、XQuery および SQL のスタンドアロンのアド ホック クエリ ユーティリティも用意されています。 『クライアント アプリケーション開発者ガイド』の「SQL を使用したデータ サービスへのアクセス」を参照してください。

クエリ プラン ビューの使用

クエリ プラン ビューのインタフェースは、クエリ関数のテストに使用するインタフェースとよく似ています。 ドロップダウン リストから関数またはプロシージャを選択し、[クエリ プランの表示] ボタンをクリックします (図 7-15)。

図 7-15 クエリ プランの右クリック オプション

クエリ プランの右クリック オプション

クエリ プランでは、以下のクエリ コンポーネントが識別されます。

クエリ プランは、以下の 3 つの形式で表示できます。

クエリ プランの情報と警告

クエリ プランには、情報メッセージと警告メッセージが表示されます。 プランの一部に対して警告メッセージが生成された場合は、そのセグメントが赤色で強調表示されます。 そのセグメントをマウスでポイントすると、警告メッセージが表示されます。

プラン内のセグメントに対して情報メッセージが生成される場合もあります。 その場合は、セグメントが黄色で強調表示されます。表 7-17 に、情報メッセージおよび警告メッセージに関連付けられている条件をまとめます。

表 7-17 クエリ プランに関連付けられている情報メッセージと警告メッセージ
警告メッセージ
情報メッセージ
  • XQuery コンパイラ : 型一致。 型一致の問題は、コンパイラによって解決される (パフォーマンスに影響する可能性がある)。
  • 監査。 この特定の関数に監査が設定されている (パフォーマンスに影響する)。
  • XQuery コンパイラ : where 句がない。 クエリ関数に関連付けられている述語がない (パフォーマンスに影響する)。
  • キャッシュ。 関数がキャッシュされている (パフォーマンスが向上する可能性がある)。
  • XQuery コンパイラ: 型なしのデータ。 ノード コンストラクタで型なしの原子データが見つかった可能性がある。
  • SQL プッシュダウン生成の詳細。
  • XQuery コンパイラ : 該当する要素がない。 名前を指定した要素がスコープ内スキーマに見つからない。
 
  • SQL 生成 : キーがない。 基底のテーブルまたはビューにキーがない。
 
  • SQL 生成 : サブクエリを生成できない。データ サービスの isSubquery プロパティが false に設定されている (『XQuery 開発者ガイド』の「Understanding Data Services Platform Annotations」の「Function Annotations」を参照)。
 
  • SQL 生成 : join 式の SQL を生成できない。 join 条件を変換できない。
 
  • SQL 生成 : 集約式 (名前付き) の SQL を生成できない。 関数がシーケンスを処理しない。
 
  • SQL 生成 : fn:string( ) 関数の出現。 代わりに xs:string( ) を使用する。xs:string( ) であれば、処理のためにデータベースにプッシュ ダウンできるため。
 

クエリ プランを出力する

クエリ プランをプリンタやファイルに出力するには、クエリ プランの右クリック オプションを使用します。 プラン内のいずれかのノードを右クリックし、[印刷] または [ファイルに保存] を選択します。

ファイルに出力すると、XML 形式のファイルとして保存されます。 次に示すように、関数名の後に文字列 _qp を追加したファイル名になります。

getCustomerView_qp.xml

ファイルは、アプリケーション内のどの場所にでも保存できます。

サンプル クエリの分析

次のクエリは、AquaLogic Data Services Platform RTLApp に含まれています。

(RTLServices/OrderDetailView/getElecOrderDetailView(order_id, customer_id)

関数のシグネチャから、このクエリはパラメータとして注文 ID と顧客 ID を取り、注文の詳細に関するデータを返すことが分かります。

次に、このクエリの擬似コードを示します。

for 顧客 ID と注文 ID が一致する電子機器の注文
 return 注文情報と出荷先情報
  for 住所 ID に一致するクレジット カード情報
   return 信用情報と請求先情報
    for 注文内の明細に一致する電子機器明細情報
      return 明細情報

図 7-18 に、展開する前の状態のクエリ プランを示します。

図 7-18 getElecOrderDetailView() のクエリ プラン

getElecOrderDetailView() のクエリ プラン

let 文は、データ サービス内のマッピング (投影) を表します。 パフォーマンスの問題を追跡する際に使用すると便利です。

join 条件は、プラン内では複合パラメータによって制御される左外側結合として示されます。 定義においては、join には左側と右側があり、それぞれの側に追加の join を含めることができます。 クエリ プランの最も便利な点は、図 7-19 に示すように、さまざまなデータ スレッドから最終的に返される結果が構成されるまでのクエリ ロジックを見ることができる点です。

図 7-19 getElecOrderDetailView() 関数のトップダウン概略図

getElecOrderDetailView() 関数のトップダウン概略図

クエリ プランの操作

クエリ プランでは、以下の 2 つの操作を実行できます。

クエリ プランで問題のある条件を特定する

特定の関数のクエリ プランを表示すると、特定のルーチンが赤色または黄色で強調表示されている場合があります。 これらは、プラン インタプリタからの警告メッセージおよび情報メッセージに対応しています。 たとえば、for 文に where 句がない場合 (つまり、大量のデータを取得することになり、パフォーマンスが低下するおそれがある場合) は、その文に近接する部分が赤色で表示され、警告メッセージがあることが分かります。

図 7-20 クエリ プラン ビューアで where 句のない for 文が警告された状態

クエリ プラン ビューアで where 句のない for 文が警告された状態

プランの強調表示された部分をマウスでポイントすると、その情報または警告が表示されます。

アド ホック クエリ プランの取得

アド ホック テスト クエリを作成できたように、アド ホック クエリ プランを作成することも可能です。 複数のデータ ソースが関係しており、それらの間で複数の更新が発生する可能性がある場合は、アド ホック クエリ プランを作成すると便利です。

アド ホック クエリのクエリ プランは、以下を使用して取得できます。

アド ホック クエリ プランは、XQuery または SQL で開発できます (図 7-21 を参照)。 開発したプランは、印刷したりファイルに保存したりできます (「クエリ プランを出力する」を参照)。

図 7-21 クエリ プラン ビューでのアド ホック クエリ オプションの選択

クエリ プラン ビューでのアド ホック クエリ オプションの選択

注意 : アド ホック クエリは、それを作成したときにアクティブだったデータ サービスがテスト ビューで開かれている間は常に使用できます。 ただし、アド ホック クエリはソース ビューには表示されません。アド ホック クエリを保存するには、テキストをコピーして外部アプリケーションに貼り付ける必要があります。

XQuery アド ホック クエリの例

図 7-22 に、アド ホック XQuery の例を示します。 現在のデータ サービスのコンストラクタ関数 (DataServices/CustomerDB/CUSTOMER) が使用されていますが、これは特に必要ありません。

図 7-22 アド ホック クエリの作成

アド ホック クエリの作成

クエリに単純型または複合型のパラメータが必要な場合は、[パラメータの表示] ボタンを使用してエクスポーズできます。

クエリによって返されるデータがある場合は、[実行] ボタンの下の [結果] ペインに表示されます。

RTLApp サンプル アプリケーションで、コード リスト 7-2 のコードをアド ホック クエリ ペインにコピーできます。 このアド ホック クエリは、実行に少し時間がかかるように設計されています。 このクエリを使用して、AquaLogic Data Services Platform Console によるクエリのモニタや実行の停止を試すこともできます。

注意 : このクエリを実行するためには、AquaLogic Data Services Platform Console の [全般] タブで、アプリケーションの [アクセス制御の確認] の選択を解除しておく必要があります。 詳細については、AquaLogic Data Services Platform の『管理ガイド』を参照してください。
コード リスト 7-2 RTLApp のテスト ビューで実行できるサンプル アド ホック クエリ
import schema namespace ns2="urn:retailerType" at "ld:DataServices/RTLServices/schemas/CustomerProfile.xsd";

declare namespace ns9="ld:DataServices/RTLServices/Customer";

declare function ns9:getCustomerSlowly() as element(ns2:CUSTOMER_PROFILE)* {

for $CUSTOMER_PROFILE in ns9:getCustomer(),
$c1 in ns9:getCustomer()[CustomerID lt $CUSTOMER_PROFILE/CustomerID],
$c2 in ns9:getCustomer()[CustomerID gt $CUSTOMER_PROFILE/CustomerID],
$c3 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID],
$c4 in ns9:getCustomer()[CustomerID lt $CUSTOMER_PROFILE/CustomerID],
$c5 in ns9:getCustomer()[CustomerID gt $CUSTOMER_PROFILE/CustomerID],
$c6 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID],
$c7 in ns9:getCustomer()[CustomerID = $CUSTOMER_PROFILE/CustomerID],
$c8 in ns9:getCustomer()[CustomerID != $CUSTOMER_PROFILE/CustomerID],
$c9 in ns9:getCustomer()[CustomerID = $CUSTOMER_PROFILE/CustomerID],
$c10 in ns9:getCustomer()[CustomerID !=

$CUSTOMER_PROFILE/CustomerID],
$c11 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID],
$c12 in ns9:getCustomer()[CustomerID eq $CUSTOMER_PROFILE/CustomerID]
return $CUSTOMER_PROFILE
};
ns9:getCustomerSlowly()

アド ホック クエリの入力が完了したら、そのクエリ プランを確認できます。 「クエリ プラン ビューの使用」を参照してください。

アド ホック クエリの作成

SQL アド ホック クエリ

アド ホック SQL クエリを入力し、そのクエリ プランを表示することもできます。 ただし、以下の前提条件があります。

SQL アド ホック クエリの例

たとえば、CUSTOMER_ORDER 関数 (DataServices:ApparelDB:CUSTOMER_ORDER) がすでにテーブルとしてパブリッシュされている場合は、データ サービスが使用可能である限り、任意のデータ サービスからアド ホック SQL クエリを実行できます。

次のクエリにもパラメータが含まれています。

SELECT * CUSTOMER_ORDER where bill_to_id=?
注意 : プロジェクト名およびパブリッシュされた SQL に関連付けられているスキーマの名前は、[デフォルト スキーマ] フィールドで指定します。 スキーマを選択しない場合は、次のように SQL データ ソースを完全に指定する必要があります。
SELECT * from DataServices.NewSchema.CUSTOMER_ORDER where bill_to_id=?

アド ホック SQL クエリのインタフェースでは、適切なパラメータ型を選択できます。 パラメータ型を選択する際は、クエリ内に出現する順序どおりに選択する必要があります (図 7-23 を参照)。

SELECT * from DataServices.NewSchema.CUSTOMER_ORDER where bill_to_id=?
図 7-23 アド ホック SQL クエリ、パラメータ、およびそのクエリ プラン


アド ホック SQL クエリ、パラメータ、およびそのクエリ プラン

標準の JDBC パラメータ型は、ドロップダウン パラメータ リストから選択できます。

テーブル パラメータを含むアド ホック SQL クエリを実行する

AquaLogic Data Services Platform では、テーブル パラメータをサポートするため SQL/92 が拡張されています。 テーブル パラメータの使用方法および制約については、『クライアント アプリケーション開発者ガイド』の「SQL を使用したデータ サービスへのアクセス」を参照してください。

テーブル パラメータを使用する SQL クエリでアド ホック クエリ プランを取得できます。 そのためには、パラメータ型に関連付けられたチェック ボックスを選択して、テーブル パラメータとして処理される適切かつ有効なパラメータを指定する必要があります (図 7-23 を参照)。


  ページの先頭       前  次