ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
11gリリース1(11.1.1)
B66712-02
  目次へ移動
目次
索引へ移動
索引

前
前へ
 
次
 

3 データの構造化

この章では、グループ、リンク、グループ・フィルタ、およびグループレベルやグローバルレベルの関数など、BI Publisherのデータ・エンジンによって返されるデータを構造化するための手法について説明します。

この章の内容は次のとおりです。

3.1 データ・モデルの使用

データ・モデルのダイアグラムは、複数のデータ・セットに基づいたレポート用のデータ・セット、ブレーク・グループおよび合計の定義を短時間で簡単に実行するために役立ちます。

3.1.1 マルチパートの関連付けられていないデータ・セットについて

データ・セット(または、問合せ)をリンクしていない場合、データ・エンジンはマルチパートの関連付けられていない問合せデータ・セットを生成します。

たとえば、図3-1に示すデータ・モデルでは、一方の問合せで製品を選択して、もう一方の問合せで顧客を選択しています。製品と顧客の間には、リレーションシップはありません。

図3-1 マルチパートの関連付けられていないデータ・セット

マルチパートの関連付けられていないデータ・セット

この結果として、データ構造は図3-2のようになります。

図3-2 マルチパートの関連付けられていないデータ・セットのデータ構造

データ構造

3.1.2 マルチパートの関連付けられたデータ・セットについて

多くの場合、データ・セット(または、問合せ)の一部からフェッチされるデータは、別の部分からフェッチされるデータによって判断されます。通常、これは、マスター/ディテール関係または親子関係と呼ばれ、2つのデータ・セット(または問合せ)間のデータ・リンクで定義されます。マスター/ディテールのデータ・モデルを実行すると、マスター(または親)問合せの行ごとにディテール(または子)問合せが実行され、一致する行のみが取り出されます。

図3-3に示す例では、2つのデータ・セットが要素Customer IDでリンクされています。Ordersデータは、Customersデータ・セットの子を設定します。

図3-3 マルチパートの関連付けられたデータ・セット

マルチパートの関連付けられたデータ・セット

これにより、データ構造は図3-4のようになります。

図3-4 マルチパートの関連付けられたデータ・セットのデータ構造

データ構造

3.1.3 データ・セットの使用についてのガイドライン

データ・モデルの構築の推奨ガイドラインは、次のとおりです。

  • データ・モデル内のデータ・セットまたは問合せの数は、できるかぎり少なくしてください。一般的に、データ・セットおよび問合せの数を少なくするほど、データ・モデルの実行が高速になります。複数問合せデータ・モデルのほうが理解しやすいことが多いようですが、単一問合せデータ・モデルのほうが通常は速く実行できます。親子関係のある問合せでは、親ごとに子問合せが実行されることを理解しておく必要があります。

  • 複数問合せデータ・モデルは、次の場合にのみ使用してください。

    • 直接サポートされていないタイプの問合せ(SQL問合せなど)の関数を実行する場合。

    • 複合ビュー(分散問合せ、GROUP BY問合せなど)をサポートする場合。

    • ビューがないときやビューが必要なときにビューをシミュレートする場合。

3.2 データ・モデル・エディタの機能

データ・モデル・エディタを使用すると、複数のデータ・セットからのデータを単一のXMLデータ構造に結合できます。複数のデータソースからのデータ・セットは、シーケンシャルXMLとしてマージするか、行レベルでマージすることで、単一の結合された階層XMLを作成できます。データ・モデル・エディタを使用すると、各タイプ(SQL問合せ、OLAP (MDX問合せ)、LDAPおよびMicrosoft Excel)のデータ・セットからのデータを簡単に結合できます。

データ・モデル・エディタがサポートする機能は、次のとおりです。

データ・モデル・エディタには、要素レベル、グループ・レベルおよびグローバル・レベルの関数が用意されています。すべてのデータ・セットのタイプですべての関数をサポートするわけではないことに注意してください。制限事項については、使用するデータ・セットのタイプに付記されている「重要なメモ」の項を参照してください。図3-5は、データ・モデル・エディタで使用できる機能とアクションの一部について示しています。

図3-5 データ・モデル・エディタの機能

データ・モデル・エディタの機能

3.3 インタフェースについて

デフォルトでは、ユーザーが作成したデータ・セットは個別のオブジェクトとして「ダイアグラム」ビューに示されます(図3-6を参照)。

図3-6 「ダイアグラム」ビュー

「ダイアグラム」ビュー

データ・セットの構造ビルダーには、次の3つのビューがあります。

3.4 データ・セット間のリンクの作成

ソース側では、データを1つの結合されたデータ・セットに結合したり構造化できない場合があります。たとえば、データが異種のデータソース(Microsoft SQL ServerとOracleデータベースなど)に存在するときには、ソースではデータを結合できません。BI Publisherデータ・エンジンを使用すると、データソースからデータを抽出した後で、そのデータを結合したり構造化できます。データの取得元が同一のソースだとしても、行数やページ数が数十万におよぶ可能性のある巨大なレポートやドキュメントを作成している場合には、目的のレイアウトと一致するようにデータを構造化することでドキュメント生成が最適化されます。

2つのデータ・セット間にマスター/ディテール(または、親子)関係を定義するためにリンクを作成します。リンクは、要素レベルのリンクまたはグループ・レベルのリンクとして作成できます。結果としての、階層XMLデータは同じになります。要素レベルのリンクとしてリンクを作成することをお薦めします。グループ・レベルのリンクは、以前のバージョンのBI Publisherによるデータ・テンプレートとの下位互換性を維持するために用意されています。

データ・リンク(または親子関係)は、複数の問合せの結果を関連付けます。データ・リンクによって、次のようなリレーションシップを確立できます。

3.4.1 要素レベルのリンクについて

要素レベルのリンクによって、2つのデータ・セット間にバインド(結合)を作成し、それらのデータ・セット間のマスター/ディテール(親子)関係を定義します。データ・セット間にマスター/ディテール関係を定義するには、この方法をお薦めします。データ・セットをリンクする最も簡単な方法は、要素レベルのリンクを作成することです。このリンクには、バインド変数によって2つのデータ・セット間を結合するコードが必要ないためです。

3.4.2 グループレベルのリンクについて

グループレベルのリンクは、データ・セットを階層XMLとして構造化する方法を決定しますが、データ・エンジンがマスター問合せとディテール問合せを実行するために必要な結合情報が欠落しています。グループ・レベルのリンクを定義するときには、2つのデータ・セット間のリンクで一意のバインド変数を通じて問合せを更新する必要もあります。

3.5 要素レベルのリンクの作成

データ・セットをリンクして、2つのデータ・セット間のマスター/ディテール(または親子)関係を定義します。要素レベルのリンクを定義することで、マスターとディテールのデータ・セットに含まれる要素間のバインディングを確立できます。

要素レベルのリンクを定義するには、次のいずれかの手順を実行します。

3.5.1 要素レベルのリンクの削除

要素のリンクを削除するには:

  1. カーソルを要素のコネクタにしばらく合せておくと、リンクされた要素の名前と削除ボタンが表示されます。

  2. 「削除」ボタンをクリックします。

または、別の方法として次の手順を実行します。

  1. どちらかの要素のアクション・メニューを開いて、「リンクの削除」をクリックします。

3.6 グループレベルのリンクの作成

グループ・レベルのリンクでは、2つのデータ・セット間のマスター/ディテール関係を定義します。次の図は、グループ・レベルのリンクが定義されている2つのデータ・セットを示しています。データ・セットの横に結果のXMLデータ構造が示されます(図3-14を参照)。

図3-14 結果のXMLデータ構造

結果のXMLデータ構造

グループ・レベルのリンクを定義するには:

  1. 親グループで、「アクションの表示」メニューをクリックします(オブジェクトの右上隅)。

  2. 「グループ・リンクの作成」をクリックします(図3-15を参照)。

    図3-15 グループ・リンクの作成

    グループ・リンクの作成
  3. 「グループ・リンクの作成」ダイアログで、リストから「子グループ」を選択して「OK」をクリックします。「グループ・リンクの作成」ダイアログを、図3-16に示します。

    図3-16 「グループ・リンクの作成」ダイアログ

    「グループ・リンクの作成」ダイアログ
  4. 「アクションの表示」メニューをクリックしてから「データ・セットの編集」をクリックして、問合せにバインド変数を追加します。

    表3-1に例を示します。

    図3-1 例: データ・セットの編集

    データ・セット: DEPT データ・セット: EMP
    Select    DEPT.DEPTNO as DEPTID,
            DEPT.DNAME as DNAME,
            DEPT.LOC as LOC 
    from     OE.DEPT DEPT
    
    Select    EMP.EMPNO as EMPNO,
            EMP.ENAME as ENAME,
            EMP.JOB as JOB,
            EMP.MGR as MGR,
            EMP.HIREDATE as HIREDATE,
            EMP.SAL as SAL,
            EMP.COMM as COMM,
            EMP.DEPTNO as DEPTNO 
    from      OE.EMP EMP 
    where   DEPTNO=:DEPTID
    


    重要:

    一意のバインド変数が子問合せに定義されている必要があります。


3.6.1 グループレベルのリンクの削除

グループ・リンクを削除するには:

  1. 親グループで、「アクションの表示」メニューをクリックします(オブジェクトの右上隅)。

  2. 「グループ・リンクの削除」をクリックします。

  3. 「グループ・リンクの削除」ダイアログで、リストから「子グループ」を選択して「OK」をクリックします。

3.7 サブグループの作成

2つのデータ・セットをリンクして親子構造を作成することに加え、同じデータ・セット内の要素を、その他の要素を基準にしてグループ化することもできます。これは、問合せが返すデータに、ディテール行ごとに繰り返されるヘッダー・データが含まれている場合に役立ちます。サブグループを作成することで、ドキュメントの生成がより効率的になるようにXMLデータを調整できます。

サブグループを作成するには:

  1. 要素を選択して、その要素をデータ・セット内の他の要素によってグループ化します。

  2. 要素のアクション・メニュー・アイコンをクリックしてメニューを開き、「グループ基準」を選択します(図3-17を参照)。

    図3-17 サブグループの作成

    サブグループの作成

    これにより、表示されているデータ・セット内に新しいグループが作成されます。次の図は、要素COMPANYを基準にグループ化されているG_3データ・セットを示しています。これによって、G_4という新しいグループが作成されます。このグループには、データ・セット内の他の4つの要素が含まれています。図3-18は、グループ化されたデータ・セットとその構造が「ダイアグラム」ビューに表示される様子を示しています。

    図3-18 サブグループのデータ構造

    サブグループのデータ構造

    新しく作成したグループに対して、任意のグループ・アクションを実行できます。

サブグループを削除するには:

  1. グループのタイトル・バーで「アクションの表示」をクリックして、「グループ解除」をクリックします。

3.8 親グループと子グループ間での要素の移動

データ・セット内にグループを作成すると、要素のアクション・メニューに新しい2つのオプションが表示されます。このオプションを使用すると、親グループと子グループ間で要素を移動できます。

移動する要素については、その要素のアクション・アイコンをクリックしてメニューを開きます。その要素が親グループ内にあり、それを子グループに移動するときには、この要素を子グループに移動を選択します。

その要素が子グループ内にあり、それを親グループに移動するときには、この要素を親グループに移動を選択します。図3-19では、OFFICE_DSC要素のアクション・メニューに、その要素を親グループに移動するためのオプションが表示されています。

図3-19 子グループから親グループへの要素の移動

子グループから親グループへの要素の移動

重要:

要素を移動する前に、他の要素との依存関係について注意してください。


3.9 グループ・レベルの集計要素の作成

データ・モデル・エディタを使用すると、グループ・レベルまたはレポート・レベルでデータを集計できます。たとえば、顧客名を基準に販売高データをグループ化すると、その販売高を集計することで各顧客の販売高の小計を求めることができます。親レベルでのみ子要素の集計を求めることができることに注意してください。

集計関数は、次のとおりです。

グループ・レベルの集計要素を作成するには:

  1. 要素を親グループの「ここに集計関数をドロップ」フィールドにドラッグします。

    図3-20では、SALARY要素に基づいたグループ・レベルの集計関数をG_DEPTに作成しています。

    図3-20 グループ・レベルの集計関数の作成

    グループ・レベルの集計関数の作成

    要素をドロップすると、親グループ内に新しい要素が作成されます。デフォルトでは、「件数」関数が適用されています。新しい集計要素の名前の横にあるアイコンによって、関数が示されます。このアイコンにカーソルをしばらく合せていると、関数が表示されます。

    図3-21は、デフォルトの「件数」関数が定義された新しい集計要素CS_1を示しています。

    図3-21 グループ・レベルの集計関数によって作成された新しい要素

    グループ・レベルの集計関数によって作成された新しい要素
  2. 関数を変更するには、関数アイコンをクリックして利用可能な関数のリストを表示して、そのリストから関数を選択します(図3-22を参照)。

    図3-22 関数の選択

    関数の選択
  3. 要素の名前の変更など、要素のプロパティを更新するには、その要素のアクションメニュー・アイコンをクリックします。メニューで、「プロパティ」をクリックします。「プロパティ」ダイアログが表示されます(図3-23を参照)。

    図3-23 「プロパティ」ダイアログ

    「プロパティ」ダイアログ

    重要:

    要素の名前を変更する際には注意が必要です。その要素は、他の要素との依存関係を持つことがあります。


    表3-2で説明するプロパティを、必要に応じて設定します。

    図3-2 要素のプロパティ

    プロパティ 説明

    列名

    BI Publisherのデータ・モデル・エディタで要素に割り当てた内部名です。この名前は、更新できません。

    別名(XMLタグ名)

    BI Publisherは、デフォルトのタグ名をXMLデータ・ファイル内の要素に割り当てます。このタグ名は、データ・ファイル内でよりわかりやすい名前に更新できます。

    表示名

    この「表示名」がレポート・デザイン・ツールに示されます。この名前は、ビジネス・ユーザーにとってわかりやすくなるように更新してください。

    関数

    目的の関数を選択していないときには、このリストから関数を選択できます。

    データ型

    BI Publisherは、関数に応じてデフォルトのデータ型(IntegerまたはDouble)を割り当てます。一部の関数には、Floatのオプションも選択できます。

    Null時の値

    関数から返された値がNULLの場合は、データにNULLが含まれないようにするために、ここにデフォルト値を指定できます。

    リセットしないでください

    デフォルトでは、関数はグループ・レベルでリセットします。たとえば、データ・セットがDEPARTMENT_IDを基準にグループ化されているときに、SALARYに対する合計関数が定義してあると、DEPARTMENT_IDデータのグループごとに合計がリセットされ、その部門にのみSALARYの合計を求めることになります。グローバル・レベルでのみ関数をリセットする必要があり、グループ・レベルではリセットする必要がない場合は、「リセットしないでください」を選択します。これにより、すべての部門のSALARYの合計が求められます。このプロパティは、グループ・レベルの関数専用です。


3.10 グループ・フィルタの作成

フィルタを使用すると、問合せで選択されたレコードを条件に応じて削除することができます。グループに設定できるフィルタには、次の2種類があります。

グループ・フィルタを作成するには:

  1. 「アクションの表示」メニューをクリックして、「グループ・フィルタの作成」を選択します。

  2. この操作によって、「グループ・フィルタの編集」ダイアログが表示されます(図3-24を参照)。

    図3-24 「グループ・フィルタの編集」ダイアログ

    「グループ・フィルタの編集」ダイアログ
  3. 「グループ・フィルタ・タイプ」に,「式」またはPL/SQLを選択します。


    注意:

    PL/SQLフィルタの場合は、最初にデータ・モデルのプロパティで「Oracle DBデフォルト・パッケージ」としてPL/SQLパッケージを指定する必要があります。第1.8項「データ・モデルのプロパティの設定」を参照してください。


  4. 次のように、フィルタを入力します。

    • 式を入力するには、要素を選択して、その要素を「グループ・フィルタ」定義ボックスに移動するために送りボタンをクリックします。事前定義済の関数と演算子をクリックして、それらを「グループ・フィルタ」ボックスに挿入します。

      使用可能な関数の説明は、第3.17項「関数リファレンス」を参照してください。

      「式の検証」をクリックして、エントリが有効であることを確認します。

    • PL/SQL関数を入力するには、「使用可能」ボックスからPL/SQLパッケージを選択して、その関数を「グループ・フィルタ」ボックスに移動するために送りボタンをクリックします。

      デフォルト・パッケージ内のPL/SQL関数は、ブール型を返すものにする必要があります。

グループ・フィルタを追加すると、データ・セット・オブジェクトにはフィルタ・インジケータが表示されます(図3-25を参照)。

図3-25 フィルタ・インジケータ

フィルタ・インジケータ

グループ・フィルタを編集または更新するには:

  1. データ・セットの「アクションの表示」メニューをクリックします。

  2. 目的のアクションを選択します。

    • グループ・フィルタを編集するには、「グループ・フィルタの編集」を選択して、編集用の「グループ・フィルタ」ダイアログを開きます。

    • グループ・フィルタを削除するには、「グループ・フィルタの削除」を選択します。

3.11 要素レベルの関数の実行

次の関数は、要素レベルで実行できます。

3.12 要素のプロパティの設定

個別の要素に対してプロパティを設定できます。これらのプロパティは、「構造」ビューからも更新できます。複数の要素のプロパティを更新する必要がある場合は、「構造」ビューを使用したほうが効率的になります。第3.16項「構造ビューを使用したデータ構造の編集」を参照してください。

要素ダイアログを使用して要素レベルのプロパティを設定するには:

  1. 要素のアクション・メニュー・アイコンをクリックします。メニューから、「プロパティ」を選択します。「プロパティ」ダイアログが表示されます(図3-26を参照)。

    図3-26 「プロパティ」ダイアログ

    「プロパティ」ダイアログ
  2. プロパティを必要に応じて設定します(詳細は、表3-3を参照)。

    図3-3 要素のプロパティ

    プロパティ 説明

    別名

    BI Publisherは、デフォルトのタグ名をXMLデータ・ファイル内の要素に割り当てます。このタグ名は、データ・ファイル内でよりわかりやすい名前に更新できます。

    表示名

    この「表示名」がレポート・デザイン・ツールに示されます。この名前は、ビジネス・ユーザーにとってわかりやすくなるように更新してください。

    データ型

    BI Publisherは、関数に応じてデフォルトのデータ型(IntegerまたはDouble)を割り当てます。一部の関数には、Floatのオプションも選択できます。

    ソート順序

    グループ内のXMLデータを、1つ以上の要素でソートできます。たとえば、従業員のデータ・セット内で部門と管理職がグループ化されている場合、部門でXMLデータをソートできます。それぞれの部門内では、管理職によってデータをグループ化またはソートできます。また、それぞれの管理職サブグループ内では、給与によって従業員をソートできます。要素が親グループ内に存在しない場合、「ソート順序」プロパティは使用できません。

    Null時の値

    関数から返された値がNULLの場合は、データにNULLが含まれないようにするために、ここにデフォルト値を指定できます。


3.13 データのソート

ソートは、親グループのブレーク列に対してのみサポートされます。たとえば、従業員のデータ・セットが部門と管理職でグループ化されている場合は、部門によってXMLデータをソートできます。それぞれの部門内では、管理職によってデータをグループ化およびソートできます。最終的なレポートで、どのようにデータをソートしておく必要があるかがわかっている場合は、データ生成時にソートを指定するとドキュメント生成が最適化されます。

グループにソート順序を適用するには:

  1. ソート基準にする要素のアクション・メニュー・アイコンをクリックします。メニューから、「プロパティ」を選択します。

  2. 「ソート順序」を選択します。

    図3-27は、「ソート順序」リストが表示されたDEPARTMENT_ID要素の「プロパティ」ダイアログを示しています。

    図3-27 「ソート順序」リストが表示された「プロパティ」ダイアログ

    「ソート順序」リストが表示された「プロパティ」ダイアログ

3.14 グループレベルの関数の実行

この項では、グループ機能の実行方法について説明します。内容は次のとおりです。

3.14.1 グループのアクション・メニュー

グループ・レベルで使用できる「アクションの表示」メニューでは、次の操作を実行できます。

グループ・レベルのアクション・メニューを図3-28に示します。

図3-28 グループ・レベルのアクション・メニュー

グループ・レベルのアクション・メニュー

3.14.2 データ・セットの編集

基になるデータ・セットを編集するには:

  1. 「データ・セットの編集」をクリックして、データ・セット・エディタを開きます。

詳細は、第2章「データ・セットの作成」からデータ・セットのタイプに該当する項を参照してください。

3.14.3 グループからの要素の削除

グループから要素を削除するには:

  1. 要素の行で、メニューをクリックして、「要素の削除」をクリックします。例を図3-29に示します。


注意:

削除できる要素は、グループ関数(SumやCountなど)として追加した要素か、式として追加した要素のみです。


図3-29 要素の削除

要素の削除

3.14.4 グループのプロパティの編集

グループのプロパティを編集するには:

  1. 「アクションの表示」メニューをクリックして、「プロパティ」を選択します。

  2. 「グループ名」を編集して、「OK」をクリックします(図3-30を参照)。

    図3-30 グループ名の編集

    グループ名の編集

3.15 グローバルレベルの関数の実行

「グローバル・レベル関数」オブジェクトを使用すると、最上位のレポート・レベルでレポート・データ・セットに要素を追加できます。最上位レベル・データとして、次のタイプの要素を追加できます。


重要:

小数を返す計算要素と式にはデータ型に「整数」を選択すると、データが切り捨てられなくなります。


「グローバル・レベル関数」オブジェクトを、図3-31に示します。集計関数に基づく要素を追加するには、オブジェクトの「ここに集計関数をドロップ」領域に要素をドラッグします。式またはPL/SQLに基づく要素を追加するには、「アクションの表示」メニューから該当するアクションを選択します。

図3-31 「グローバル・レベル関数」オブジェクト

「グローバル・レベル関数」オブジェクト

3.15.1 グローバル・レベル集計関数の追加

グローバル集計関数を追加するには:

  1. データ・セットからデータ要素をドラッグして、「グローバル・レベル関数」オブジェクトの「ここに集計関数をドロップ」領域にドロップします。

    たとえば、図3-32では、Salary要素に基づくグローバル・レベル集計関数を作成しています。

    図3-32 グローバル・レベル集計関数の作成

    グローバル・レベル集計関数の作成
  2. マウスのボタンを放すと、データ・モデル・エディタによって、集計要素にデフォルト名が割り当てられます。また、デフォルト関数として、「件数」が割り当てられます。使用可能な関数は、次のとおりです。

    • 件数

    • 平均

    • 最初

    • 最後

    • 最大

    • 最小

    • サマリー

    関数を変更するには、新しい要素名の左側にある関数アイコンをクリックして、リストから関数を選択します。

    図3-33では、新しいグローバル・レベルの要素CS_1の関数を「件数」から「平均」に変更しています。

    図3-33 関数の適用

    関数の適用
  3. デフォルトの名前を変更するには、要素名の右にあるアクション・アイコンをクリックしてから「プロパティ」をクリックして、「プロパティの編集」ダイアログを開きます。このダイアログで使用できるプロパティの詳細は、第3.12項「要素プロパティの設定」を参照してください。

3.15.2 グループ・レベルまたはグローバル・レベルの要素の式による追加

グループ・レベルまたはグローバル・レベルの要素を式で追加するには:

  1. グループ・レベル要素を追加する場合は、「グループ」オブジェクトで「アクションの表示」メニューをクリックして、「式による要素の追加」を選択します。

    グローバル・レベル要素を追加する場合は、「グローバル・レベル関数」オブジェクトで「アクションの表示」メニューをクリックして、「式による要素の追加」を選択します(図3-34を参照)。

    図3-34 式による要素の追加

    式による要素の追加
  2. 「式による要素の追加」ダイアログ内のフィールドに入力します(図3-35を参照)。

    図3-35 「式による要素の追加」ダイアログ

    「式による要素の追加」ダイアログ

    表3-4 「式による要素の追加」ダイアログのフィールド

    フィールド 説明

    名前

    この要素の名前を入力します。

    別名

    タグ名を入力します。タグ名は、XMLデータ・ファイル内での要素の名前になります。

    表示名

    この「表示名」がレポート・デザイン・ツールに示されます。ビジネス・ユーザーにわかりやすい名前を入力します。

    データ型

    データ型のリストから選択します(String、Integer、Double、FloatまたはDate)。


  3. 式を入力します。

    送り矢印を使用して、式に必要なデータ要素を「使用可能」ボックスから「式」ボックスに移動します。

    演算子をクリックして、その演算子を「式」ボックスに挿入するか、関数リストから選択します。

    使用可能な関数の説明は、第3.17項「関数リファレンス」を参照してください。

  4. 「式の検証」をクリックして、検証します。

3.15.3 PL/SQLによるグローバル・レベル要素の追加

このPL/SQL関数は、VARCHARデータ型を返す必要があります。

PL/SQLでグローバル・レベル要素を追加するには:

  1. 「グローバル・レベル関数」オブジェクトで、「アクションの表示」メニューをクリックして、「PL/SQLによる要素の追加」をクリックします。

  2. 「PL/SQLによる要素の追加」ダイアログで、フィールドに入力します(図3-36を参照)。フィールドの詳細は、表3-5を参照してください。

    図3-36 「PL/SQLによる要素の追加」ダイアログ

    「PL/SQLによる要素の追加」ダイアログ

    表3-5 「PL/SQLによる要素の追加」ダイアログのフィールド

    フィールド 説明

    名前

    この要素の名前を入力します。

    別名

    タグ名を入力します。タグ名は、XMLデータ・ファイル内での要素の名前になります。

    表示名

    この「表示名」がレポート・デザイン・ツールに示されます。ビジネス・ユーザーにわかりやすい名前を入力します。

    データ型

    「String」を選択する必要があります。

    ソート順序

    ソート順序を選択します。

    Null時の値

    PL/SQL関数から返された値がNULLの場合に返す値を入力します。


  3. 「使用可能」ボックスからPL/SQLパッケージを選択し、送りボタンをクリックしてその関数を「グループ・フィルタ」ボックスに移動します。

3.16 構造ビューを使用したデータ構造の編集

「構造」ビューを使用すると、データ・モデルの構造を表示確認できます。「データソース」列には、日付要素が階層ツリー形式で表示されます。この階層ツリーは、閉じたり開いたりできます。このビューを使用して、データ・モデル構造の正確さを検証します。「構造」ビューを図3-37に示します。

図3-37 「構造」ビュー

「構造」ビュー

3.16.1 要素名の変更

「構造」ページを使用して、データ・モデル内の要素に対して、ユーザーにとってわかりやすい名前を定義します。XML要素タグの名前(「XML表示」)と、レポート・レイアウト・ツールに表示される名前(「ビジネス名」)のどちらも変更できます。図3-38では、DEPARTMENT_ID要素の名前がDepartment Numberと表示されるように変更しています。

図3-38 要素の表示名の編集

要素の表示名の編集

3.16.2 NULL要素に対する値の追加

「構造」では、データ・モデルが要素にNULL値を返した場合に、その要素に使用する値を入力することもできます。

使用する値を、その要素の「Null時の値」フィールドに入力します。

3.17 関数リファレンス

表3-6では、「式による要素の追加」ダイアログと「グループ・フィルタの編集」ダイアログでサポートされている使用可能な関数について説明しています。

表3-6 「式による要素の追加」ダイアログでサポートされる関数

関数 説明

IF

演算子

NOT

演算子

AND

演算子

OR

演算子

MAX

セット内の要素の最大値を戻します。

MIN

セット内の要素の最小値を戻します。

ROUND

ROUND ( number [, integer ] )は、numberを小数点以下integer桁に丸めた値を返します。integerを省略すると、numberは、0桁目で丸められます。integerを負の数にすることで、小数点の左側の桁で丸めることができます。integerは、整数にする必要があります。

例:

round (2.777)

戻り値

3

例:

round (2.777, 2)

戻り値

2.78

FLOOR

FLOOR(n)は、n以下になる最大の整数を返します。

CEILING

CEILING(n)は、n以上になる最小の整数を返します。

ABS

ABS(n)は、nの絶対値を返します。

AVG

AVG(expr)は、exprの平均値を返します。

LENGTH

LENGTH(char)関数は、charの長さを返します。LENGTH関数は、入力文字セットの文字数によって長さを計算します。charがNULLの場合、この関数はNULLを返します。charが配列の場合、この関数は配列の長さを返します。

配列の長さを返す例: length({1, 2, 4, 4})は4を返します。

文字列の長さを返す例: length('countries')は9を返します。

SUM

SUM(expr)は、exprの値の合計を返します。

NVL

NVL(expr1, expr2)を使用すると、問合せの結果に含まれるNULL(空白として返される)を文字列に置換できます。expr1がNULLの場合、NVLはexpr2を返します。expr1がNULLでない場合、NVLはexpr1を返します。

CONCAT

CONCAT(char1, char2)は、char1にchar2を連結した結果を返します。

STRING

STRING(number)は、Stringデータ型としてのnumberを返します。

SUBSTRING

substring関数を使用すると、文字列から部分文字列を抽出できます。substring関数の構文は次のとおりです。

substring(string, start_position, end_position)

stringは、ソース文字列です。

start_positionは、抽出する先頭の位置です。

end_positionは、抽出する文字列の末尾の位置です(オプション)。

例:

substring('this is a test', 5, 7)

isが返されます。

substring('this is a test', 5)

is a testが返されます。

INSTR

instr関数は、文字列内の部分文字列の位置を返します。Instr関数の構文は次のとおりです。

instr(string1,string2)

string1は、検索する文字列です。

string2は、string1内で検索する部分文字列です。

例: instr('this is a test', 'is a')

5が返されます。

DATE

DATE(date_str,format_str)は、文字を日付データ型に変換します。フォーマット文字列は、有効なJavaの日付フォーマット文字列にする必要があります。

例: DATE('01-01-2011','MM-dd-yyyy')

FORMAT_DATE

FORMAT_DATE関数は、Javaの日付フォーマットで日付の引数を受け取り、その引数をフォーマットされた文字列に変換します。

次に例を示します。

FORMAT_DATE(HIRE_DATE, 'MM-DD-YYYY')は、HIRE_DATEの値が1987-09-17T00:00:00.000+00:00のときに、17-Sep-1987を返します。

FORMAT_NUMBER

FORMAT_NUMBER関数は、数値の引数を受け取り、その数値を指定したフォーマットの文字列に変換します。例: FORMAT_NUMBER (SALES_UNITS,'9G990D000')

NUMBER

NUMBER(char)は、charを数値データ型に変換します。