プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド
12c (12.2.1.1.0)
E77222-02
目次へ移動
目次

前
前へ
次
次へ

SQL問合せを使用したデータ・セットの作成

このトピックでは、SQL問合せを使用してデータ・セットを作成する方法について説明します。

SQL問合せの入力

この手順を使用して、SQL問合せを入力します。

SQL問合せおよび「実行計画の生成」オプションの最適化の詳細は、SQLデータ・セットのベスト・プラクティスを参照してください。

SQL問合せを入力するには:

  1. 「新規データ・セット」をクリックし、「SQL問合せ」をクリックします。次に示されているように、データ・セットの作成 - 「SQL」ダイアログが開きます。
  2. データ・セットの名前を入力します。
  3. データソースのデフォルトは、「プロパティ」ページで選択されたデフォルトのデータソースです。このデータ・セットのデフォルト・データソースを使用しない場合は、リストから「データソース」を選択します。

    プライベート・データソース接続をSQL問合せデータ・セットのデータソースとして使用することもできます。プライベート・データソース接続の詳細は、プライベート・データソースの管理を参照してください。

  4. SQLタイプは、データベース・スキーマを認識するために解析される標準のSELECT文に使用される「標準SQL」にデフォルトで設定されています。他のSQLタイプの使用の詳細は、非標準SQLデータ・セットの作成を参照してください。
  5. SQL問合せを入力するか、「クエリー・ビルダー」をクリックして「クエリー・ビルダー」ページを開きます。クエリー・ビルダー・ユーティリティの詳細は、SQLクエリー・ビルダーの使用を参照してください。
  6. 問合せ内でフレックスフィールドやバインド変数などの特別な処理を使用する場合は、クエリー・ビルダーから返されたSQLを編集して必要な文を組み込みます。

    注意:

    SELECT文に埋め込んだテキストの字句参照を含める場合は、有効なSQL文が得られるように値を置き換える必要があります。

  7. 問合せの入力後に、「OK」をクリックして保存します。標準SQL問合せの場合、データ・モデル・エディタによって問合せが検証されます。

    問合せにバインド変数が含まれているときには、バインド・パラメータの作成を促すプロンプトが表示されます。「OK」をクリックして、データ・モデル・エディタでバインド・パラメータを作成します。

    パラメータの編集の詳細は、パラメータと値リストの追加を参照してください。

非標準SQLデータ・セットの作成

基本SQLコマンドを使用したデータ・セットの作成に加えて、より複雑なコマンドを使用してデータ・セットを作成できます。

プロシージャ・コール

この問合せタイプは、データベース・プロシージャをコールする場合に使用します。たとえば、PL/SQL for Oracleの場合、文がBEGINで始まります。このSQLデータ型を使用すると、メタデータはデータ・モデル構造のタブに表示されないため、データ構造またはデータ・フィールドを変更できません。プロシージャ・コールを使用してSQLを作成するには、コードをテキスト・ボックスに直接入力するか、別のSQLエディタからコピーして貼り付けます。クエリー・ビルダーは、このようなタイプの問合せの変更または構築に使用できません。

非標準SQL

この問合せタイプは、次のものを組み込むことができるSQL文を発行する場合に使用します。

  • ネストされた結果セットを返すCursor文

    たとえば、次のように入力します。

      Ex:SELECT TO_CHAR(sysdate,'MM-DD-YYYY') CURRENT_DATE ,
      CURSOR
       (SELECT d.order_id department_id,
               d.order_mode department_name ,
               CURSOR
               (SELECT e.cust_first_name first_name,
                 e.cust_last_name last_name,
                 e.customer_id employee_id,
                 e.date_of_birth hire_date
               FROM customers e
               WHERE e.customer_id IN (101,102)
               ) emp_cur
        FROM orders d
        WHERE d.customer_id IN (101,102)
      ) DEPT_CUR FROM dual
    
  • REFカーソルを返す関数

    たとえば、次のように入力します。

    create or replace PACKAGE REF_CURSOR_TEST AS
      TYPE refcursor IS REF CURSOR;
      pCountry  VARCHAR2(10);
      pState   VARCHAR2(20);
      FUNCTION GET( pCountry IN VARCHAR2, pState   IN VARCHAR2) RETURN  REF_CURSOR_TEST.refcursor;
      END;
    
    
      create or replace PACKAGE BODY REF_CURSOR_TEST AS
      FUNCTION GET(
       pCountry  IN VARCHAR2,
       pState    IN VARCHAR2)
      RETURN REF_CURSOR_TEST.refcursor
      IS
      l_cursor REF_CURSOR_TEST.refcursor;
      BEGIN
         IF ( pCountry = 'US' ) THEN
           OPEN l_cursor FOR 
           SELECT TO_CHAR(sysdate,'MM-DD-YYYY') CURRENT_DATE ,
               d.order_id department_id,
               d.order_mode department_name
           FROM orders d
           WHERE d.customer_id IN (101,102);
         ELSE
           OPEN l_cursor FOR 
           SELECT * FROM EMPLOYEES;    
         END IF;   
         RETURN l_cursor;
       END GET;
      END REF_CURSOR_TEST;
    
    

    BI PublisherでREFカーソルを使用するには、次のようにします。

    create SQL dataset with query as SELECT REF_CURSOR_TEST.GET(:PCNTRY,:PSTATE) AS CURDATA FROM DUAL
  • 匿名ブロック/ストアド・プロシージャ

    BI Publisherでは、PL/SQL匿名ブロックの実行がサポートされています。PL/SQLブロックで計算を実行し、結果のセットを返すことができます。BI Publisherでは、コール可能文を使用して匿名ブロックを実行します。

    次の要件に注意してください。

    • PL/SQLブロックは、REFカーソル型の結果セットを返す必要があります。

    • 名前が"xdo_cursor"のout変数を宣言する必要があります。宣言しないと、最初のバインド変数がout変数タイプとして扱われ、REFカーソルとバインドします。

    • 名前が"xdo_cursor"のデータ・モデル・パラメータを宣言します。この名前は、プロシージャ/匿名ブロックのout変数タイプ用に予約されています。

    例:

    DECLARE
           type refcursor is REF CURSOR;
           xdo_cursor refcursor;
           empno number;
        BEGIN 
          OPEN :xdo_cursor FOR 
           SELECT * 
           FROM EMPLOYEES E
           WHERE E.EMPLOYEE_ID = :P2;
           COMMIT;
        END;
  • if-else式を使用すると、条件付き問合せを実行できます。単一のデータ・セットで複数のSQL問合せを定義できますが、式の値に応じて実行時に実行される問合せは1つのみです。式では、検証してブール値を返し、値がtrueの場合、そのセクションのSQL問合せが実行されます。

    次の制限に注意してください。

    • 式の評価では、構文: $if{$elseif{$else{がサポートされています

    • 式はtrueまたはfalseを返す必要があります。

    • 次の演算子のみサポートされています。

      == <= >= < >

     Example:
       create sql dataset with following query
       $if{ (:P_MODE == PRODUCT) }$
                    SELECT PRODUCT_ID
                    ,PRODUCT_NAME
                    ,CATEGORY_ID
                    ,SUPPLIER_ID
                    ,PRODUCT_STATUS
                    ,LIST_PRICE
                    FROM PRODUCT_INFORMATION 
                    WHERE ROWNUM < 5
       $elsif{(:P_MODE == ORDER )}$
                    SELECT ORDER_ID
                      ,ORDER_DATE
                      ,ORDER_MODE
                      ,CUSTOMER_ID
                      ,ORDER_TOTAL
                      ,SALES_REP_ID
                    FROM ORDERS
                    WHERE ROWNUM < 5
       $else{ 
                   SELECT PRODUCT_ID
                   , WAREHOUSE_ID
                   ,QUANTITY_ON_HAND
                   FROM INVENTORIES
                   WHERE ROWNUM < 5
                   }$
       $endif$
    

非標準SQL文を使用してデータ・セットを作成すると、メタデータはデータ・モデル構造のタブに表示されないため、データ構造またはデータ・フィールドを変更できません。クエリー・ビルダーは、このようなタイプの問合せの変更または構築に使用できません。

非標準SQLデータ・セットのXML行タグを定義するには:

データ・モデルの定義でxmlRowTagName=""を使用して、非標準SQL問合せデータ・セットのxml行タグを定義します。これにより、有効なタグ名を入力できます。属性が空の場合、実行時のデフォルトはROWになります。

データセットの定義を次に示します。

<dataSet name="Q1" type="simple">
	<sql dataSourceRef="bipdev4-demo" nsQuery="true"  xmlRowTagName="">
		,,
	</sql>
</dataset>

SQLクエリー・ビルダーの使用

コーディングせずにSQL問合せを作成するには、クエリー・ビルダーを使用します。クエリー・ビルダーを使用すると、SQLに関する最小限の知識で、データベース・オブジェクトの検索とフィルタ処理、オブジェクトと列の選択、オブジェクト間の関連の作成、および書式設定された問合せ結果の表示を行うことができます。

この項では、クエリー・ビルダーの使用方法について説明します。この項の内容は次のとおりです。

クエリー・ビルダーの概要

「クエリー・ビルダー」ページは、「オブジェクト選択」ペインと設計と出力ペインに分かれています。

  • 「オブジェクト選択」ペインには、問合せの作成に使用できるオブジェクトのリストが表示されます。現行スキーマのオブジェクトのみが表示されます。

  • 設計と出力ペインは、次の4つのタブで構成されています。

    • モデル - 「オブジェクト選択」ペインから選択したオブジェクトが表示されます。

    • 条件 - 選択した列に条件を適用できます。

    • SQL - 問合せが表示されます。

    • 結果 - 問合せの結果が表示されます。

クエリー・ビルダーのプロセスの理解

この手順を実行して問合せを作成します。

  1. スキーマを選択します。

    「スキーマ」リストには、データソースで使用可能なすべてのスキーマが表示されます。ただし、リスト内にアクセスできないスキーマがある場合があります。

  2. 「設計」ペインにオブジェクトを追加して、列を選択します。

    「オブジェクト選択」ペインには、選択したスキーマの表、ビューおよびマテリアライズド・ビューがリストされます(Oracleデータベースの場合、シノニムもリストされます)。リストからオブジェクトを選択すると、そのオブジェクトが「設計」ペインに表示されます。「設計」ペインを使用して、選択したオブジェクトを問合せで使用する方法を特定します。

    「検索」フィールドを使用して、検索文字列を入力することが必要になる場合があります。データソースに100を超える表がある場合は、この「検索」機能を使用して、目的のオブジェクトを検索および選択する必要があります。

  3. (省略可能)オブジェクト間の関係を確立します。

  4. すべての重複列に一意の別名を追加します。

  5. (省略可能)問合せ条件を作成します。

  6. 問合せを実行し、結果を表示します。

サポートされている列タイプ

すべてのタイプの列がオブジェクトとして「設計」ペインに表示されます。

次の列制限に注意してください。

  • 各問合せで選択できる列の数は60以下です。

  • 選択できるのは次の列タイプのみです。

    • VARCHAR2、CHAR

    • NUMBER

    • DATE, TIMESTAMP

      注意:

      データ型TIMESTAMP WITH LOCAL TIMEZONEは、サポートされていません。

    • バイナリ・ラージ・オブジェクト(Binary Large Object: BLOB)

      注意:

      BLOBはイメージです。クエリー・ビルダーで問合せを実行すると、BLOBは「結果」ペインに表示されませんが、問合せはデータ・モデル・エディタに保存されるときに正しく作成されます。

    • キャラクタ・ラージ・オブジェクト(CLOB)

      データ・モデル内でCLOBデータを使用する方法の詳細は、キャラクタ・ラージ・オブジェクト(CLOB)として格納されたデータのデータ・モデル内での使用方法を参照してください。

「設計」ペインへのオブジェクトの追加

設計ペインに追加する各オブジェクトを選択します。

「設計」ペインにオブジェクトを追加するには:

  1. オブジェクトを選択します。

    選択したオブジェクトが「設計」ペインに表示されます。データ型を表すアイコンが列名の横に表示されます。

  2. 問合せに含める各列のチェック・ボックスを選択します。

    列を選択すると、その列が「条件」タブに表示されます。この「条件」タブの「表示」チェック・ボックスは、問合せ結果に列を含めるかどうかを制御することに注意してください。このチェック・ボックスは、デフォルトでは選択されています。

    最初の20列を選択するには、オブジェクトの左上隅にある小さいアイコンをクリックし、すべてチェックを選択します。

  3. 問合せを実行して結果を表示するには、「結果」を選択します。

    ヒント:

    問合せは、[Ctrl]+[Enter]キーを押して実行することもできます。

「設計」ペインでのオブジェクトの削除または非表示

設計ペインでオブジェクトを削除または非表示にできます。

オブジェクトを削除するには:

  1. オブジェクトの右上隅にある「削除」をクリックします。

オブジェクト内の列を一時的に非表示にするには:

  1. 「列の表示/非表示」をクリックします。

問合せ条件の指定

条件を使用すると、作業対象のデータをフィルタ処理して識別できます。

オブジェクト内の列を選択するときは、(次に示した)「条件」タブで条件を指定できます。これらの属性を使用して、列別名の変更、列条件の適用、列のソート、または関数の適用を行うことができます。

次の表では「条件」タブで使用可能な属性について説明します。


条件属性 説明

上矢印および下矢印

問合せ結果内の列の表示順序を制御します。

列名を表示します。

別名

列の別名(オプション)を指定します。別名とは列名の別称です。別名は、列名をより説明的にする場合や、列名を短縮する場合、あいまいな参照を回避する場合に使用されます。別名にはマルチバイト・キャラクタはサポートされないので注意してください。

オブジェクト

オブジェクト名が表示されます。

条件

条件によって、問合せのWHERE句が変更されます。列条件を指定するときは、適切な演算子およびオペランドを含める必要があります。標準のSQL条件はすべてサポートされています。たとえば、次のように入力します。

>=10

='VA'

IN (SELECT dept_no FROM dept)

BETWEEN SYSDATE AND SYSDATE + 15

ソート・タイプ

ASC(昇順)またはDESC(降順)を選択します。

ソート順序

番号(1、2、3・・・)を入力して、選択した列が表示される順序を指定します。

表示

列を問合せ結果に含めるには、このチェック・ボックスを選択します。フィルタ処理のためにのみ列を問合せに追加する場合は、「表示」を選択する必要はありません。たとえば、次の問合せを作成する場合について説明します。

SELECT ename FROM emp WHERE deptno = 10

この問合せをクエリー・ビルダーで作成する手順は、次のとおりです。

  1. 「オブジェクト」リストから、EMPを選択します。

  2. 「設計」ペインでenameとdeptnoを選択します。

  3. deptno列について「条件」に=10と入力し、「表示」チェック・ボックスを選択解除します。

関数

使用可能な引数関数は次のとおりです。

  • 数値列 - COUNT、COUNT DISTINCT、AVG、MAXIMUM、MINIMUM, SUM

  • VARCHAR2列、CHAR列 - COUNT、COUNT DISTINCT、INITCAP、LENGTH、LOWER、LTRIM、RTRIM、TRIM、UPPER

  • DATE列、TIMESTAMP列: COUNT、COUNT DISTINCT

グループ基準

集計関数の使用時にグループ化に使用する列を指定します。出力に含まれる列にのみ適用できます。

削除

問合せから列を排除して、選択解除します。


列を選択し条件を定義すると、クエリー・ビルダーによってSQLが書き込まれます。

基になるSQLを表示するには:

  • 「SQL」タブを選択します。

オブジェクト間の関係の作成

結合を作成することで、オブジェクト間の関係を作成できます。結合によって、複数の表、ビューまたはマテリアライズド・ビューの間の関連が識別されます。

結合条件について

結合の問合せを記述するときは、2つのオブジェクトの関係を示す条件を指定します。この条件は結合条件と呼ばれます。

結合条件によって、1つのオブジェクトの行を別のオブジェクトの行とどのように組み合せるかが決定されます。

クエリー・ビルダーは、内部結合、外部結合、左側結合および右側結合をサポートしています。内部結合(単純結合とも呼ばれます)は、結合条件を満たす行を戻します。外部結合は、単純結合の結果を拡張します。外部結合は、結合条件を満たすすべての行を戻し、さらに、一方の表に結合条件を満たす行がない場合は、結合条件を満たす一部またはすべての行をもう一方の表から戻します。

オブジェクトの手動結合

「設計」ペインの「結合」列を選択して、結合を手動で作成します。

オブジェクトを手動で結合するには:

  1. 「オブジェクト選択」ペインで、結合するオブジェクトを選択します。
  2. 結合する列を指定します。

    列名に隣接する結合列を選択して、結合を作成します。結合列はデータ型の右側に表示されます。該当する位置にカーソルを置くと、次のヘルプ・ヒントが表示されます。

    結合対象の列を選択するには、ここをクリックしてください

  3. 最初のオブジェクトに対して、適切な結合列を選択します。

    選択すると、結合列が選択表示になります。結合列の選択を解除するには、再度その列を選択するか[Esc]を押します。

  4. 2番目のオブジェクトに対して、適切な結合列を選択します。

    結合すると、2つの列が線で結ばれます。次に例を示します。

  5. 問合せに含める列を選択します。結合線にカーソルを置くと、結合した結果のSQL文を表示できます。
  6. 「結果」をクリックして問合せを実行します。

問合せの保存

問合せを構築した後にその問合せを保存します。

問合せの作成後には、「保存」をクリックしてデータ・モデル・エディタに戻ります。この問合せは、「SQL問合せ」ボックスに表示されます。「OK」をクリックするとデータ・セットが保存されます。

保存された問合せの編集

クエリー・ビルダーからデータ・モデル・エディタに問合せを保存しておくと、その問合せの編集にクエリー・ビルダーを使用することもできます。

クエリー・ビルダーを使用して問合せを編集するには:

  1. SQLデータ・セットを選択します。
  2. ツールバーの「選択したデータ・セットの編集」をクリックして「データ・セットの編集」ダイアログを開きます。
  3. 「クエリー・ビルダー」をクリックして、クエリー・ビルダーに問合せをロードします。

    注意:

    問合せが変更されている場合や、問合せの作成にクエリー・ビルダーを使用していない場合には、その問合せを編集するためにクエリー・ビルダーを起動するとエラーが示されることがあります。クエリー・ビルダーで問合せを解析できないときには、テキスト・ボックス内で文を直接編集してください。

  4. 問合せを編集して、「保存」をクリックします。

問合せへのバインド変数の追加

問合せの作成後、ユーザーがこの問合せにパラメータを渡して結果を限定できるようにすることが必要な場合があります。たとえば、従業員のリストで、ユーザーが特定の部門を選択できるようにする必要があります。

変数を追加するには、次のどちらかの方法を使用します。

クエリー・ビルダーの「条件」タブを使用してバインド変数を追加するには:

  • 次の「条件」を列に追加します。

    in (:PARAMETER_NAME)

    このPARAMTER_NAMEは、次に示されているように、パラメータに選択した名前です。

  • SQL問合せを、テキスト・ボックス内で直接更新します。

    注意:

    問合せを手動で編集すると、その問合せをクエリー・ビルダーで解析することはできなくなります。それ以降の編集も、手動で実行する必要があります。

    テキスト・ボックス内でSQL問合せを直接更新するには:

    1. 問合せ内のWHERE句の後ろに、次の行を追加します。

      and "COLUMN_NAME" in (:PARAMETER_NAME)

      次に例を示します。

      and "DEPARTMENT_NAME" in (:P_DEPTNAME)

      このP_DEPTNAMEは、次に示されているように、パラメータに選択した名前です。

    2. 「保存」をクリックすると、次に示されているように、バインド変数構文を使用して入力したパラメータを作成するかどうかを尋ねる画面が表示されます。

    3. パラメータを選択して「OK」をクリックすると、パラメータ・エントリが自動的に作成されます。パラメータのプロパティを定義する方法の詳細は、パラメータと値リストの追加を参照してください。

SQL問合せへの字句参照の追加

字句参照を使用して、SELECT、FROM、WHERE、GROUP BY、ORDER BYまたはHAVINGの後にくる句を置換できます。

実行時にパラメータで複数の値を置換する場合は字句参照を使用します。字句参照がサポートされるのは、Oracleアプリケーションに対する問合せのみです。

SQL問合せの中に字句参照を作成するには、次の構文を使用します。

&parametername

注意:

字句参照を使用すると、フレックスフィールドを問合せに組み込むこともできます。フレックスフィールドの使用方法の詳細は、フレックスフィールドの追加を参照してください。

字句パラメータを定義するには:

  1. 問合せを作成する前に、問合せの字句参照ごとに、PL/SQLデフォルト・パッケージでパラメータを定義します。データ・エンジンでは、これらの値を使用して字句パラメータを置換します。
  2. データ・モデル・エディタの「プロパティ」ページで、「Oracle DBデフォルト・パッケージ」を指定します。
  3. データ・モデル・エディタで、「データの前」イベント・トリガーを作成し、このPL/SQLパッケージをコールするように設定します。手順の詳細は、データの前およびデータの後トリガーの追加を参照してください。
  4. 字句参照が含まれるSQL問合せを作成します。
  5. SQL問合せを閉じるために「OK」をクリックすると、パラメータを入力するための画面が表示されます。

たとえば、パッケージをemployeeという名前で作成します。employeeパッケージの中で、where_clauseというパラメータを次のように定義します。

Package employee
AS
 where_clause varchar2(1000);
  .....
 
Package body employee
 AS
 .....
where_clause := 'where DEPARTMENT_ID=10';
.....

SQL問合せの中で字句パラメータを参照します。このパラメータが、パッケージ内で定義されたコードで置き換えられます。たとえば、次のように入力します。

select	 "EMPLOYEES"."EMPLOYEE_ID" as "EMPLOYEE_ID",
	 "EMPLOYEES"."FIRST_NAME" as "FIRST_NAME",
	 "EMPLOYEES"."LAST_NAME" as "LAST_NAME",
	 "EMPLOYEES"."SALARY" as "SALARY",
 from	"OE"."EMPLOYEES" "EMPLOYEES"
 &where_clause

SQLデータ・セットの作成ダイアログ・ボックスの「OK」をクリックすると、字句参照ダイアログ・ボックスが表示されます。これは、次に示されているようにSQL問合せ内に入力した字句参照の値を入力するためのものです。字句参照の値を、PL/SQLパッケージ内で定義されているとおりに入力します。

実行時に、パッケージ内で定義されたwhere_clauseの内容で &where_clauseが置き換えられます。

Oracle BIサーバーに対するSQL問合せの定義

クエリー・ビルダーをOracle BIサーバーに対して起動すると、クエリー・ビルダーには、カタログからのサブジェクト・エリアが表示されます。このサブジェクト・エリアをクエリー・ビルダーの作業領域にドラッグすると、列が表示されます。データ・モデルに入れる列を選択します。

データ・セットをOracle BIサーバーに対して作成するときは、次の点に注意してください。

  • SQLデータ・エディタまたはクエリー・ビルダーを使用して、SQL問合せをOracle BIサーバーに対して作成するときは、論理SQLが生成されます。他のデータベース・ソースの場合とは異なり、物理SQLは生成されません。

  • 階層列はサポートされません。最も上のレベルが常に返されます。

  • サブジェクト・エリアの中では、表間の結合条件がすでに作成されています。したがって、クエリー・ビルダーで結合を作成する必要はありません。クエリー・ビルダーによって主キーが公開されることはありません。

    データ・モデル・エディタの「リンクの作成」機能を使用してデータ・セットどうしをリンクできます。要素レベルのリンクの作成を参照してください。BIサーバーから作成したデータ・セットの場合、1つのデータ・モデルに対して2つの要素レベルのリンクという制限があります。

  • クエリー・ビルダーの「条件」タブに表示される機能のうち、「ソート順序」「グループ基準」は、Oracle BIサーバーに対する問合せの場合はサポートされません。「ソート順序」に入力した場合や、「グループ基準」チェック・ボックスを選択した場合も、クエリー・ビルダーによってSQLが作成されてBI Publisherの「SQL問合せ」テキスト・ボックスに出力されますが、「データ・セット」ダイアログを閉じようとすると、問合せは検証不合格となります。

    SQL問合せで取り出したデータをグループ化するには、データ・モデル・エディタの「グループ基準」機能をかわりに使用してください。サブグループの作成を参照してください。

  • パラメータをOracle BIサーバーに渡すとともに、「全選択可能」で「NULL値が渡されました」を選択した場合は、問合せの中で確実にnull値の処理を行う必要があります。

Oracle BIサーバーに対するSQL問合せを作成するには:

  1. データ・モデル・エディタで、「新規データ・セット」をクリックし、「SQL問合せ」をクリックします。
  2. データ・セットの名前を入力します。
  3. 「データソース」ドロップダウン・リストで、Oracle BIサーバー接続を選択します(通常は「Oracle BI EE」と表示されます)。
  4. 「クエリー・ビルダー」をクリックして「クエリー・ビルダー」ページを開きます。クエリー・ビルダー・ユーティリティの詳細は、SQLクエリー・ビルダーの使用を参照してください。

    SQL構文を手動で「SQL問合せ」テキスト・ボックスに入力することもできますが、Oracle BIサーバーで使用される論理SQL構文を使用する必要があります。

  5. 「カタログ」ドロップダウン・リストで、次に示されているようにサブジェクト・エリアを選択します。このリストに表示されるのは、Oracle BIサーバー内で定義されているサブジェクト・エリアです。
  6. 問合せの表と列を選択します。
  7. 「保存」をクリックします。
  8. 「OK」をクリックしてデータ・モデル・エディタに戻ります。生成されるSQLは、スター・スキーマに従う論理SQLです。物理SQLではありません。
  9. 変更内容をデータ・モデルに保存します。

Oracle Fusionアプリケーション表に対する問合せの注意点

Oracle Fusionアプリケーション表に対する問合せを書く際にOracle Fusionアプリケーション顧客に対する特別な考慮事項が適用されます

  • 月の名前をsysdateからto_char(sysdate,"mon")を使用して返すことはできません。この関数は月の番号を返します。月の名前を表示するには、次のいずれかのソリューションを使用します:

    • レイアウトの日付フィールドを、次の構文を使用して書式設定します: <?format_date:fieldname;MASK)?>

      レイアウトにおける日付の書式設定の詳細は、Oracle Business Intelligence Publisherレポート・デザイナーズ・ガイドの日付の書式設定を参照してください。

    • 月の番号に基づいて月の名前を表示するには、レイアウトで次の構文を使用します:

      <?xdoxslt:month_name(month, [abbreviate?], $_XDOLOCALE)?>

      このmonthは、月の数値(January = 1)で、

      [abbreviate?]は、省略しない場合は0で省略する場合は1です。

      たとえば、次のように入力します。

      <?xdoxslt:month_name(1, 0, $_XDOLOCALE)?>

      Januaryが返されます

    • データ・モデルに式を追加するには、次の式を使用します:

      Format_date(date, format_String)

      たとえば、次のように入力します。

      SUBSTRING(FORMAT_DATE(G_1.SYSDATE,MEDIUM),0,3)

      Novが返されます (現在のSYSTDATEがNovemberの場合)