Oracle® Fusion Middleware Oracle Business Intelligence Publisherデータ・モデリング・ガイド 12c (12.2.1.4.0) E96100-05 |
|
![]() 前 |
![]() 次 |
内容は次のとおりです。
Oracle BI Publisherでは、いくつかのタイプのデータソースからデータを取得できます。
データ・セットを作成するには:
データ・モデル・エディタのコンポーネント・ペインで、「新規データ・セット」をクリックし、使用するデータ・セットのタイプを選択します。
必須フィールドに入力します。対応する項を参照してください。
このトピックでは、SQL問合せを使用してデータ・セットを作成する方法について説明します。
基本SQLコマンドを使用したデータ・セットの作成に加えて、より複雑なコマンドを使用してデータ・セットを作成できます。
プロシージャ・コール
この問合せタイプは、データベース・プロシージャをコールする場合に使用します。たとえば、Oracle PL/SQLの文は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;
Oracle 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に関する最小限の知識で、データベース・オブジェクトの検索とフィルタ処理、オブジェクトと列の選択、オブジェクト間の関連の作成、および書式設定された問合せ結果の表示を行うことができます。
この項では、クエリー・ビルダーの使用方法について説明します。この項の内容は次のとおりです。
「クエリー・ビルダー」ページは、「オブジェクト選択」ペインと設計と出力ペインに分かれています。
「オブジェクト選択」ペインには、問合せの作成に使用できるオブジェクトのリストが表示されます。現行スキーマのオブジェクトのみが表示されます。
設計と出力ペインは、次の4つのタブで構成されています。
モデル - 「オブジェクト選択」ペインから選択したオブジェクトが表示されます。
条件 - 選択した列に条件を適用できます。
SQL - 問合せが表示されます。
結果 - 問合せの結果が表示されます。
すべてのタイプの列がオブジェクトとして「設計」ペインに表示されます。各問合せで選択できる列の数は60以下です。
サポートされている列タイプ | 制限事項 |
---|---|
VARCHAR2、CHAR | NA |
NUMBER | NA |
DATE、TIMESTAMP | TIMESTAMP WITH LOCAL TIMEZONE データ型はサポートされていません。 |
バイナリ・ラージ・オブジェクト(Binary Large Object: BLOB) | BLOBはイメージです。クエリー・ビルダーで問合せを実行すると、BLOBは「結果」ペインに表示されませんが、問合せはデータ・モデル・エディタに保存されるときに正しく作成されます。BI Publisherでは、Oracle BI EEデータソースでのBLOB列の問合せはサポートされていません。 |
キャラクタ・ラージ・オブジェクト(CLOB) | BI Publisherでは、Oracle BI EEデータソースでのCLOB列の問合せはサポートされていません。 |
設計ペインに追加する各オブジェクトを選択します。
オブジェクトを追加すると、データ型を表すアイコンが列名の横に表示されます。
列を選択すると、その列が「条件」タブに表示されます。「条件」タブの「表示」チェック・ボックスは、問合せ結果に列を含めるかどうかを制御します。このチェック・ボックスは、デフォルトでは選択されています。
最初の20列を選択するには、オブジェクトの左上隅にある小さいアイコンをクリックし、すべてチェックを選択します。
問合せは、[Ctrl]+[Enter]キーを押して実行することもできます。
設計ペインでオブジェクトを削除または非表示にできます。
オブジェクトを削除するには:
オブジェクトの右上隅にある「削除」をクリックします。
オブジェクト内の列を一時的に非表示にするには:
条件を使用すると、作業対象のデータをフィルタ処理して識別できます。
オブジェクト内の列を選択するときは、(次に示した)「条件」タブで条件を指定できます。これらの属性を使用して、列別名の変更、列条件の適用、列のソート、または関数の適用を行うことができます。
次の表では「条件」タブで使用可能な属性について説明します。
条件属性 | 説明 |
---|---|
上矢印および下矢印 |
問合せ結果内の列の表示順序を制御します。 |
列 |
列名を表示します。 |
別名 |
列の別名(オプション)を指定します。別名とは列名の別称です。別名は、列名をより説明的にする場合や、列名を短縮する場合、あいまいな参照を回避する場合に使用されます。別名にはマルチバイト・キャラクタはサポートされないので注意してください。 |
オブジェクト |
オブジェクト名が表示されます。 |
条件 |
条件によって、問合せのWHERE句が変更されます。列条件を指定するときは、適切な演算子およびオペランドを含める必要があります。標準のSQL条件はすべてサポートされています。例: >=10 ='VA' IN (SELECT dept_no FROM dept) BETWEEN SYSDATE AND SYSDATE + 15 |
ソート・タイプ |
ASC(昇順)またはDESC(降順)を選択します。 |
ソート順序 |
番号(1、2、3・・・)を入力して、選択した列が表示される順序を指定します。 |
表示 |
列を問合せ結果に含めるには、このチェック・ボックスを選択します。フィルタ処理のためにのみ列を問合せに追加する場合は、「表示」を選択する必要はありません。たとえば、次の問合せを作成する場合について説明します。
この問合せをクエリー・ビルダーで作成するには:
|
関数 |
使用可能な引数関数は次のとおりです。
|
グループ基準 |
集計関数の使用時にグループ化に使用する列を指定します。出力に含まれる列にのみ適用できます。 |
削除 |
問合せから列を排除して、選択解除します。 |
列を選択し条件を定義すると、クエリー・ビルダーによってSQLが書き込まれます。
基になるSQLを表示するには:
「SQL」タブを選択します。
結合を作成することで、オブジェクト間の関係を作成できます。結合によって、複数の表、ビューまたはマテリアライズド・ビューの間の関連が識別されます。
結合の問合せを記述するときは、2つのオブジェクトの関係を示す条件を指定します。この条件は結合条件と呼ばれます。
結合条件によって、1つのオブジェクトの行を別のオブジェクトの行とどのように組み合せるかが指定されます。
クエリー・ビルダーは、内部結合、外部結合、左側結合および右側結合をサポートしています。
内部結合(単純結合とも呼ばれます)は、結合条件を満たす行を戻します。
外部結合は、単純結合の結果を拡張します。
外部結合は、結合条件を満たすすべての行を戻し、さらに、一方の表に結合条件を満たす行がない場合は、結合条件を満たす一部またはすべての行をもう一方の表から戻します。
問合せを構築した後にその問合せを保存します。
問合せの作成後には、「保存」をクリックしてデータ・モデル・エディタに戻ります。この問合せは、「SQL問合せ」ボックスに表示されます。「OK」をクリックするとデータ・セットが保存されます。
クエリー・ビルダーからデータ・モデル・エディタに問合せを保存しておくと、その問合せの編集にクエリー・ビルダーを使用することもできます。
問合せが変更されている場合や、問合せの作成にクエリー・ビルダーを使用していない場合には、その問合せを編集するためにクエリー・ビルダーを起動するとエラーが示されることがあります。クエリー・ビルダーで問合せを解析できないときには、テキスト・ボックス内で文を直接編集してください。
ノート:
カスタマイズ済問合せや拡張問合せの編集にはクエリー・ビルダーを使用できません。問合せの作成後、ユーザーがこの問合せにパラメータを渡して結果を限定できるようにすることが必要な場合があります。たとえば、従業員のリストで、ユーザーが特定の部門を選択できるようにする必要があります。
次のイメージに、部門表の列を示します。
字句参照を使用して、SELECT、FROM、WHERE、GROUP BY、ORDER BYまたはHAVINGの後にくる句を置換できます。
実行時にパラメータで複数の値を置換する場合は字句参照を使用します。字句参照がサポートされるのは、Oracleアプリケーションに対する問合せのみです。
SQL問合せの中に字句参照を作成するには、次の構文を使用します。
¶metername
ノート:
字句参照を使用すると、フレックスフィールドを問合せに組み込むこともできます。フレックスフィールドの使用方法の詳細は、フレックスフィールドの追加を参照してください。
たとえば、パッケージを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サーバーに対して起動すると、クエリー・ビルダーには、カタログからのサブジェクト・エリアが表示されます。このサブジェクト・エリアをクエリー・ビルダーの作業領域にドラッグすると、列が表示されます。データ・モデルに入れる列を選択します。
データ・セットをOracle BIサーバーに対して作成するときは、次の点に注意してください。
SQLデータ・エディタまたはクエリー・ビルダーを使用して、SQL問合せをOracle BIサーバーに対して作成するときは、論理SQLが生成されます。他のデータベース・ソースの場合とは異なり、物理SQLは生成されません。
階層列はサポートされません。最も上のレベルが常に返されます。
サブジェクト・エリアの中では、表間の結合条件がすでに作成されています。したがって、クエリー・ビルダーで結合を作成する必要はありません。クエリー・ビルダーによって主キーが公開されることはありません。
データ・モデル・エディタの「リンクの作成」機能を使用してデータ・セットどうしをリンクできます。要素レベルのリンクの作成を参照してください。Oracle BIサーバーから作成したデータ・セットの場合、1つのデータ・モデルに対して2つの要素レベルのリンクという制限があります。
クエリー・ビルダーの「条件」タブに表示される機能のうち、「ソート順序」と「グループ基準」は、Oracle BIサーバーに対する問合せの場合はサポートされません。「ソート順序」に入力した場合や、「グループ基準」チェック・ボックスを選択した場合も、クエリー・ビルダーによってSQLが作成されてBI Publisherの「SQL問合せ」テキスト・ボックスに出力されますが、「データ・セット」ダイアログを閉じようとすると、問合せは検証不合格となります。
SQL問合せで取り出したデータをグループ化するには、データ・モデル・エディタの「グループ基準」機能をかわりに使用してください。「サブグループの作成」を参照してください。
パラメータをOracle BIサーバーに渡すとともに、「全選択可能」で「NULL値が渡されました」を選択した場合は、問合せの中で確実にnull値の処理を行う必要があります。
Oracle Fusionアプリケーション表に対する問合せを書く際にOracle Fusionアプリケーション顧客に対する特別な考慮事項が適用されます
月の名前をsysdate
からto_char(sysdate,"mon")
を使用して返すことはできません。この関数は月の番号を返します。月の名前を表示するには、次のいずれかのソリューションを使用します:
レイアウトの日付フィールドを、次の構文を使用して書式設定します: <?format_date:fieldname;MASK)?>
月の番号に基づいて月の名前を表示するには、レイアウトで次の構文を使用します:
<?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の場合)
BI Publisherでは、OLAPデータソースに対するマルチディメンション式(MDX)問合せがサポートされます。
MDXを使用すると、マルチディメンション・オブジェクト(たとえばEssbaseキューブ)に対して問合せを実行して、キューブのデータが格納されたマルチディメンション・セル・セットを返すことができます。MDX問合せを作成するには、手動でMDX問合せを入力するか、MDXクエリー・ビルダーを使用して問合せを作成します。
MDXクエリー・ビルダーを使用すると、基本的なMDX問合せをコーディング不要で作成できます。MDXクエリー・ビルダーでは、ディメンションを列、行、ページおよび視点の各軸に追加することや、問合せの結果をプレビューできます。
ノート:
MDXクエリー・ビルダーで実行できるのは、Essbaseデータソースに対するデータ・セットの作成のみです。その他すべてのOLAPデータソースについては、問合せを手動で作成する必要があります。
MDX問合せを作成するには、手動でMDX問合せを入力するか、MDXクエリー・ビルダーを使用して問合せを作成します。
MDXクエリー・ビルダーを使用してMDX問合せを作成するには:
「キューブの選択」ダイアログでは、MDX問合せの作成に使用するEssbaseキューブを選択します。
選択済のMDXデータソース接続によって、どのEssbaseキューブが選択可能になるかが決まります。
MDX問合せを作成するには、「列」、「行」、「スライサ/POV」、「ページ」の各軸のディメンションを選択します。
Accountディメンションのメンバーは、メンバー名ごとに個別に一覧表示されます。次に示されているように、その他のディメンション・メンバーはすべて世代名によって表現されます。
ディメンションの世代や個々のメジャーを、「Account」ディメンションから「列」、「行」、「スライサ/POV」、「ページ」の各軸にドラッグできます。
問合せを作成するには、ディメンションのメンバーまたはメジャーを「ディメンション」パネルから次の軸領域のいずれかにドラッグします。
列: 問合せのAxis (0)
行: 問合せのAxis (1)
スライサ/POV: スライサ軸を利用すると、問合せの対象をEssbaseキューブの特定スライスにのみ限定できます。これは、問合せのWHERE句(省略可能)を表します。
軸: 問合せのAxis (2)
「列」軸と「行」軸ではディメンションのメンバーをネストできますが、「スライサ/POV」軸では1つのディメンションのみを追加できます。
MDXクエリー・ビルダーのツールバーには、MDX問合せに変更を加えるための、次のボタンがあります。
「行と列の入替え」をクリックすると、行と列の間でディメンションが入れ替わります。
「アクション」をクリックすると、次のメニュー項目が表示されて選択できるようになります。
キューブの選択: 問合せのための別のEssbaseキューブを選択します。
別名表の設定: ディメンション表示名に使用する別名表を選択します。別名は表示にのみ使用され、問合せの中では使用されません。
自動リフレッシュ: 「列」、「行」、「スライサ/POV」、「ページ」の各軸にディメンション・メンバーが配置されたときに結果を表示し、MDX問合せ構文を自動的にリフレッシュします。
結果のクリア: 結果をクリアし、すべての軸でのメンバー選択および問合せに追加されたフィルタを解除します。
空白列の表示: データが格納されていない列を表示します。
空白行の表示: データが格納されていない行を表示します。
問合せの表示: ディメンションを「列」、「行」、「スライサ/POV」、「ページ」の各軸に配置した結果として作成される、MDX問合せ構文を表示します。
MDXクエリー・ビルダーでは、「列」、「行」、「ページ」の各軸のディメンションに対するフィルタを作成して、MDX問合せをさらに絞り込むことができます。
1つの問合せに対して複数のフィルタを作成できますが、「列」、「行」、「ページ」の軸ごとに作成できるフィルタは1つのみです。
「オプション」ダイアログでは、「列」、「行」、「ページ」の各軸のディメンションごとに、問合せに組み込むディメンション・プロパティを選択します。
次に示されているように、問合せの作成が完了したら、「保存」をクリックすると「オプション」ダイアログが表示されます。
デフォルトでは、プロパティは何も選択されません。
ディメンションのプロパティは次のとおりです。
メンバーの別名: Essbaseアウトラインにリスト表示される、ディメンション・メンバーの別名。
祖先名: Essbaseアウトラインにリスト表示される、祖先ディメンション名。
レベル番号: Essbaseアウトラインにリスト表示される、ディメンション・レベル番号。
生成番号: Essbaseアウトラインにリスト表示される、ディメンションの世代番号。
たとえば、「メンバーの別名」プロパティと「レベル番号」プロパティを選択した場合のMDX問合せは、次のようになります。
SELECT NON EMPTY Hierarchize([Market].Generations(2).Members) PROPERTIES MEMBER_ALIAS,LEVEL_NUMBER ON Axis(0), NON EMPTY CROSSJOIN(Hierarchize([Product].Generations(3).Members), {[Accounts].[Margin],[Accounts].[Sales],[Accounts].[Total_Expenses]})ON Axis(1), NON EMPTY [Year].Generations(3).Members ON Axis(2) FROM Demo.Basic
Essbaseディメンション・プロパティの詳細は、Oracle Essbase for BIドキュメントで見つかるOracle Essbaseデータベース管理者ガイドを参照してください。
次に示されているように、MDX問合せのオプションを選択したら、「OK」をクリックして「新規データ・セット - MDX問合せ」ダイアログに戻り、MDX問合せ出力を確認します。
「OK」をクリックしてデータ・モデル・エディタに戻り、変更内容を保存します。
ノート:
MDX問合せをBI Publisherに保存した後で変更を加える場合は、構文をMDXクエリー・ビルダーで変更するのではなく、手動で変更することをお薦めします。
Oracle Business Intelligenceとの統合を有効にしている場合は、Oracle Business Intelligenceプレゼンテーション・カタログにアクセスすると、データソースとして「Oracle BI Analysis」を選択できるようになります。
分析は、ビジネス上の疑問に対する回答を得るための、組織のデータに対する問合せです。問合せには、Oracle BI Serverに発行される、ベースとなるSQL文が含まれています。
ノート:
BI Publisherのデータ・モデルでは、階層列はサポートされません。
パラメータと値リストは、BI分析から継承され、実行時に表示されます。
BI Analysisには、フィルタ変数用に定義されたデフォルト値が必要です。分析にデフォルト値のないプレゼンテーション変数が含まれていると、BI Publisherではデータソースとしてサポートされなくなります。
Oracle BI Analysisデータ・セットに基づいてデータを構造化する必要がある場合は、グループのブレーク、グループのフィルタ、データのリンクおよびグループ・レベル関数はサポートされません。
次の内容がサポートされています。
グローバル・レベル関数
要素がNULLの場合の値の設定
前述のサポート対象機能の詳細は、データの構造化を参照してください。
BI Publisherを使用すると、Oracle Application Development Frameworkで作成したカスタム・アプリケーションに接続して、そのアプリケーションのビュー・オブジェクトをレポートのデータソースとして使用できます。
SQLがデータベースに対して直接実行されるため、問合せ実行のパフォーマンスが向上します。
ビュー・オブジェクトを使用してOracle BI Publisherデータ・モデルを作成する前に、まずアプリケーションでビュー・オブジェクトを作成する必要があります。
ビュー・オブジェクト・データ・セットに基づいたデータを構造化する場合、グループのブレーク、データのリンクおよびグループ・レベル関数はサポートされません。
サポート対象は、要素がNULLの場合の値の設定です。
このサポート対象機能の詳細は、データの構造化を参照してください。
BI Publisherでは単純および複合的なWebサービス・データソースを使用して有効なXMLデータを返すデータ・セットをサポートしています。
Webサービスのメソッドのパラメータを含めるには、先にパラメータを定義して、そのメソッドをデータソースの設定時に選択できるようにすることをお薦めします。「パラメータと値リストの追加」を参照してください。
複数のパラメータがサポートされています。メソッド名が正しいことと、パラメータの順序がメソッド内での順序と一致することを確認します。Webサービスで2つのパラメータを受け入れるメソッドをコールする場合、メソッド内の2つのパラメータに対して、レポート内で定義した2つのパラメータをマッピングする必要があります。サポートされているパラメータは、文字列や整数などの単純型のパラメータのみです。
ノート:
文書またはリテラルのWebサービスのみがサポートされます。
パラメータを指定するには、「パラメータの追加」をクリックし、パラメータをドロップダウン・リストから選択します。
ノート:
パラメータは、レポート定義の「パラメータ」セクションで設定する必要があります。詳細は、パラメータと値リストの追加を参照してください。
Webサービス・データソースは、「管理」ページで設定するか、データソースとして設定できます。
「管理」ページ
Webサービス・データソースへの接続を「管理」ページで設定し、複数のデータ・モデルで使用できます。
プライベート・データソースとして
自分のみアクセス可能なプライベート接続を設定することもできます。プライベート・データソース接続の詳細は、プライベート・データソースの管理を参照してください。
データ・モデルを作成する前に接続を設定する必要があります。
BI Publisherでは単純および複合的なWebサービス・データソースを使用して有効なXMLデータを返すデータ・セットをサポートしています。
BI Publisherでは複合的なWebサービス・データソースを使用して有効なXMLデータを返すデータ・セットをサポートしています。複合的なWebサービス・タイプは、内部でsoapRequest/soapEnvelopeを使用して、接続先ホストにパラメータ値を渡します。
データ・セットで複合的なWebサービスをデータソースとして使用している場合、データ・モデル・エディタにはWSDL URL、使用可能なWebサービスおよび複合的なWebサービスに関連付けられた操作が表示されます。選択した操作のそれぞれについて、必要な入力パラメータの構造がデータ・モデル・エディタに表示されます。「オプション・パラメータの表示」を選択した場合、オプション・パラメータもすべて表示されます。
Webサービスで使用できるメソッドとパラメータがわからない場合は、このWSDL URLをブラウザで開いて確認します。
BI Publisherでは、Lightweight Directory Access Protocol (LDAP)データソースに対する問合せをサポートしています。
LDAPディレクトリに格納されているユーザー情報を問い合せてから、データ・モデル・エディタを使用すると、そのユーザー情報をその他のデータソースから取得したデータとリンクできます。
たとえば、データベース・アプリケーションに格納されている従業員の給与情報をリストするレポートを生成するときに、LDAPディレクトリに格納されている従業員の電子メール・アドレスもレポートに含める場合、それぞれを対象にした問合せを作成し、次にそれらの2つをデータ・モデル・エディタでリンクすると、単一のレポートに情報を表示できます。次の図に、LDAP問合せの例を示します。
XMLファイルを使用してデータソースを作成できます。
次のいずれかの操作を行います。
管理者によってデータソースとして設定されたディレクトリに、XMLファイルを置きます。
XMLファイルをローカル・ディレクトリからデータ・モデルにアップロードします。
ノート:
BI Publisherのレイアウト・エディタとインタラクティブ・ビューアを使用するには、XMLファイル・ソースからのサンプル・データがデータ・モデルに保存されている必要があります。
BI Publisherのデータ・セット・タイプとしてのXMLファイルのサポートは、特定のガイドラインに従います。
BI Publisher データ・エンジンへの入力として使用されるXMLファイルは、UTF-8でエンコードされている必要があります。
XMLタグ名では、~、!、#、$、%、^、&、*、+、`、|、:、\"、\\、<、>、?、,、/を使用しないでください。データソース・ファイルにこれらの文字が含まれている場合は、データ・モデル・エディタの「構造」タブを使用して、受け入れられるタグ名に変更してください。
有効なXMLファイルを使用します。Oracleは、XMLファイルを検証するための多数のユーティリティと方法を用意しています。
XMLファイル・データ・セットから利用できるメタデータは存在しないため、グループ化およびリンクはサポートされません。
ディレクトリに格納されたXMLファイルを使用してデータ・セットを作成します。
ファイル・ディレクトリ・データソースにあるXMLファイルを使用してデータ・セットを作成するには:
ローカルに格納されたXMLファイルを使用してデータ・セットを作成できます。
ローカルに格納されたXMLファイルを使用してデータ・セットを作成するには:
アップロードされたローカルのXMLファイルはリフレッシュおよび削除できます。
次に示されているように、ファイルをアップロードすると、そのファイルはデータ・モデルの「プロパティ」ペインにある「添付」リージョンに表示されます。
「プロパティ」ペインの詳細は、データ・モデルのプロパティの設定を参照してください。
データ・モデル内のローカル・ファイルをリフレッシュするには:
コンポーネント・ペインの「データ・モデル」をクリックして「プロパティ」ページを表示します。
このページの「添付」リージョンで、「データ・ファイル」リストからファイルを見つけます。
「リフレッシュ」をクリックします。
「アップロード」ダイアログで、最新バージョンのファイルを参照してアップロードします。このファイルには同じ名前を付ける必要があります。別の名前を付けると古いバージョンは置き換えられません。
データ・モデルを保存します。
ローカル・ファイルを削除するには:
コンテンツ・サーバー・データソースへの接続を「管理」ページで設定し、複数のデータ・モデルで使用できます。
これらのトピックでは、Microsoft Excelファイルをデータソースとして使用するための要件、オプションおよび手順について説明します。
Microsoft Excelファイルをデータソースとして使用できます。
管理者はファイル・データソース・ディレクトリを設定し、スプレッドシートをファイル・データソース・ディレクトリにアップロードする必要があります。ファイルの指定には、次の2つのオプションがあります。
データソースとして管理者が設定したディレクトリからファイルを選択します。
ローカル・ディレクトリからデータ・モデルにファイルをアップロードします。
Oracle BI Publisherのデータ・セット・タイプとしてのMicrosoft Excelファイルのサポートは特定のガイドラインに従います。
Microsoft Excelファイルは、Microsoft Excelを使用してExcel 97-2003のワークブック(*.xls)形式で保存します。サード・パーティ製のアプリケーションやライブラリで作成されたファイルは、サポートされません。
ソースのExcelファイルの中のシートは、単一でも複数でもかまいません。
各ワークシートに、1つ以上の表を入れることができます。1つの表とは、1つのシート内の連続した行と列に配置されたデータのブロックです。
それぞれの表について、Oracle BI Publisherは、常に最初の行を表のヘッダー行と見なします。
見出し行の下の最初の行は空にしないでください。表の列のタイプを決定するために使用されます。この表内のデータ型は、数値、テキストまたは日付/時間にできます。
単一のワークシート内に複数の表が存在する場合は、それぞれをBI Publisherで認識するために、名前で識別される必要があります。シートごとの複数の表のアクセスを参照してください。
Excelファイル内の表のすべてに名前が付けられていない場合は、最初の表のデータのみが認識され、そのデータのみがフェッチされます。
データ・セットの作成時、BI Publisherは、数値に対して常に小数点以下の末尾のゼロをすべて切り捨てます。最終的なレポートで末尾のゼロを保持するには、そのゼロが表示されるように、テンプレートで書式マスクを適用する必要があります。
単一値パラメータはサポートされますが、複数値パラメータはサポートされません。
Excelワークシートにデータソースとして含める複数の表が格納されている場合は、Excelで、それぞれの表に名前を定義する必要があります。
ノート:
定義する名前は、接頭辞BIP_で始まる必要があります(例: BIP_SALARIES)。
たとえば、Microsoft Excel 2007の「名前の定義」
コマンドを使用して、表にBIP_Salariesという名前を付けることができます。
ディレクトリに格納されたMicrosoft Excelファイルを使用してデータ・セットを作成します。
データ・セットにパラメータを含めるには、最初にパラメータを定義して、それらのパラメータをデータ・セットの定義時に選択できるようにしておく必要があります。「パラメータと値リストの追加」を参照してください。
ノート:
Excelデータ・セット・タイプでは、パラメータごとに1つの値がサポートされます。複数パラメータの選択はサポートされていません。
ファイル・ディレクトリ・データソースにあるMicrosoft Excelファイルを使用してデータ・セットを作成するには:
ローカルのMicrosoft Excelファイルをデータソースとして使用するには、最初にそのファイルをアップロードする必要があります。
データ・セットにパラメータを含めるには、最初にパラメータを定義して、そのパラメータをデータ・セットの定義時に選択できるようにしてください。「パラメータと値リストの追加」を参照してください。
ノート:
Excelデータ・セット・タイプでは、パラメータごとに1つの値がサポートされます。複数パラメータの選択はサポートされていません。
ローカルに格納されたMicrosoft Excelファイルを使用してデータ・セットを作成するには:
アップロードされたローカルのExcelファイルはリフレッシュおよび削除できます。
次に示されているように、ファイルをアップロードすると、そのファイルはデータ・モデルの「プロパティ」ペインにある「添付」リージョンに表示されます。
「プロパティ」ペインの詳細は、データ・モデルのプロパティの設定を参照してください。
データ・モデル内のローカル・ファイルをリフレッシュするには:
コンポーネント・ペインで「データ・モデル」をクリックして、「プロパティ」ページを表示します。
このページの「添付」リージョンで、「データ・ファイル」リストからファイルを見つけます。
「リフレッシュ」をクリックします。
「アップロード」ダイアログで、最新バージョンのファイルを参照してアップロードします。このファイルには同じ名前を付ける必要があります。別の名前を付けると古いバージョンは置き換えられません。
データ・モデルを保存します。
ローカル・ファイルを削除するには:
BI PublisherではCSVファイル・データソースを使用して有効なXMLデータを返すデータ・セットをサポートしています。
次のトピックでは、CSVをデータソースとして使用するための要件および手順について説明します:
BI Publisherのデータ・セット・タイプとしてのCSVファイルのサポートは特定のガイドラインに従います。
管理者がデータソースとして設定したディレクトリに配置されたCSVファイルを使用できます。
ローカル・ディレクトリからファイルをアップロードできます。
CSVファイルのデリミタとしてサポートされるのは、カンマ、パイプ、セミコロンおよびタブです。
CSVファイルの中にヘッダーがある場合は、ヘッダーの名前がXMLタグ名として使用されます。XMLタグ名では、~、!、#、$、%、^、&、*、+、`、|、:、\"、\\、<、>、?、,、/はサポートされません。データソース・ファイルのヘッダー名にこれらの文字が含まれている場合は、データ・モデル・エディタの「構造」タブを使用してタグ名を編集してください。
CSVデータ・セットでは、データ・モデル・エディタによって割り当てられたデータ型の編集がサポートされます。「データ型の編集」を参照してください。データ・セット内の要素のデータ型を更新する場合は、選択したデータ型にファイル内のデータが準拠していることを確認してください。
Oracle BI Publisherデータ・エンジンへの入力として使用されるCSVファイルは、UTF-8でエンコードされている必要があります。また、空の列ヘッダーを含めることはできません。
グループ・ブレーク、データ・リンク、式およびグループ・レベルの関数はサポートされていません。
CSVファイル内のデータ・フィールドの形式は、マッピングされる日付要素については標準ISOデータ書式(例: 2012-01-01T10:30:00-07:00)を使用し、マッピングされる数値要素については######.##を使用する必要があります。
CSVファイルの検証は行われません。
ローカル・ファイル・ディレクトリに格納されたCSVファイルを使用してデータ・セットを作成します。
ローカルに格納されたCSVファイルを使用してデータ・セットを作成するには:
CSVファイル・データ型のアップロード後、必要に応じて編集できます。
CSVファイル要素のデータ型を編集するには、データ型アイコンをクリックするか、要素の「プロパティ」ダイアログで更新します。
要素のデータは、割り当てられたデータ型に準拠している必要があります。ユーザー・インタフェースには、データ型を更新するときにデータを検証する機能はありません。データが一致しない場合(たとえば、整数として定義された要素に対して文字列値が存在する場合)は、レイアウト編集ツールで、または実行時にエラーが発生する可能性があります。
データ型を更新できるのは、データソースがCSVファイルの場合のみです。
アップロードされたローカルのCSVファイルはリフレッシュおよび削除できます。
次に示されているように、ファイルをアップロードすると、そのファイルはデータ・モデルの「プロパティ」ペインにある「添付」リージョンに表示されます。
「プロパティ」ペインの詳細は、データ・モデルのプロパティの設定を参照してください。
データ・モデル内のローカル・ファイルをリフレッシュするには:
コンポーネント・ペインの「データ・モデル」をクリックして「プロパティ」ページを表示します。
このページの「添付」リージョンで、「データ・ファイル」リストからファイルを見つけます。
「リフレッシュ」をクリックします。
「アップロード」ダイアログで、最新バージョンのファイルを参照してアップロードします。このファイルには同じ名前を付ける必要があります。別の名前を付けると古いバージョンは置き換えられません。
データ・モデルを保存します。
ローカル・ファイルを削除するには:
HTTP (XML入力)データ・セット・タイプを使用すると、HTTP GETメソッドでデータを取得して、Web上のRSSフィードおよびXML入力からデータ・モデルを作成できます。
データ・セットにパラメータを含めるには、先にパラメータを定義して、そのパラメータをデータ・セットの定義時に選択できるようにすることをお薦めします。「パラメータと値リストの追加」を参照してください。
HTTP XML入力データ・セットから得られるメタデータは存在しないため、グループとリンクはサポートされません。
システムのセキュリティに応じて、外部データソースのフィードにアクセスするために追加の構成が必要になることがあります。RSSフィードがSecure Sockets Layer (SSL)によって保護されている場合は特にそうです。
HTTP (XML入力)データソースは2つの異なる方法によって設定できます。
「管理」ページ:
HTTPデータソースへの接続を「管理」ページで設定し、複数のデータ・モデルで使用できます。
プライベート・データソースとして:
自分のみアクセス可能なプライベート接続を設定することもできます。プライベート・データ・ソースの管理を参照してください。
BI Publisherでは、キャラクタ・ラージ・オブジェクト(CLOB)データ型として格納されたデータのデータ・モデル内での使用をサポートしています。この機能によって、別のプロセスで生成してデータベースに保存してあるXMLデータを、BI Publisherデータ・モデルへの入力として使用できます。
クエリー・ビルダーを使用して、SQL問合せで列を取得してから、データ・モデル・エディタを使用して、必要なデータ構造を指定します。データ・モデルの実行時に、データ・エンジンは次のいずれかの形式でデータを構造化します。
レポートに表示できるXMLタグ名内のプレーンな文字セット(例: 項目の説明)
構造化XML
ノート:
必ずデータに改行またはキャリッジ・リターンが含まれないようにしてください。データ内の改行およびキャリッジ・リターンは、BI Publisherレポートのレイアウトで予期したように表示されないことがあります。
CLOBとして格納されたデータからデータ・セットを作成するには:
問合せの実行時、CLOB列に整形式XMLが含まれていると、データ・エンジンはCLOB列のタグ名内に構造化されたXMLデータを返します。
データ型がXMLの場合の出力例:
<DESCRIPTION>要素には、次に示されているようにCLOB列内に格納されたXMLデータが含まれています。
データ型がCLOBの場合の出力例:
CLOBデータ型としてデータが返されるように選択している場合、返されるデータは次に示されているように構造化されます。
詳細は、CLOB列データで参照できます。
バースティング問合せでCLOB列を使用する際に特有のノートは、バースティング定義のデータ・モデルへの追加を参照してください。
BI Publisherでは、データベースのCLOB列に格納されたXHTML文書形式のデータを取得して、生成されたレポートでマークアップをレンダリングできます。
BI Publisherレポート・レンダリング・エンジンでマークアップ・タグを処理できるようにするには、データ・エンジンから渡されたXMLレポート・データ内で、XHTMLデータをCDATAセクション内にラッピングする必要があります。
CDATAセクションでラッピングされたデータをデータベースに格納することをお薦めします。これにより、単純なSELECT文を使用してデータを抽出できます。データがCDATAセクション内にラッピングされていない場合は、そのデータをラッピングするための命令をSQL文に含める必要があります。
次の各項では、それぞれの場合でXHTMLデータを抽出する方法について説明しています。
レポート内でのHTMLマークアップのレンダリングは、RTFテンプレートに対してのみサポートされます。
ここでは、次のデータがCLOB_DATAというデータベース列に格納されていると仮定します。
<![CDATA[ <p><font style="font-style: italic; font-weight: bold;" size="3"> <a href="http://www.oracle.com">oracle</a></font> </p> <p><font size="6"><a href="http://docs.oracle.com/">Oracle Documentation</a> </font></p> ]]>
次の例に示すような単純なSQL文を使用して列データを取得します。
select CLOB_DATA as "RTECODE" from MYTABLE
次に示されているように、データ・モデル・エディタでRTECODE列のデータ型をXMLに設定します。
ここでは、次のデータがCLOB_DATAというデータベース列に格納されていると仮定します。
<p><font style="font-style: italic; font-weight: bold;" size="3"> <a href="http://www.oracle.com">oracle</a></font> </p> <p><font size="6"><a href="http://docs.oracle.com/">Oracle Documentation</a> </font></p>
次の構文をSQL問合せ内で使用して、そのデータを取得し、それをCDATAセクション内にラッピングします。
select '<![CDATA' || '['|| CLOB_DATA || ']' || ']>' as "RTECODE"from MYTABLE
データ・モデル・エディタで、RTECODE列のデータ型をXMLに設定します。
データ・モデル・エディタにはデータ・モデルをテストして出力を表示する機能があり、期待した結果が得られることを確認できます。
テストが正常に完了した後で、テスト出力をデータ・モデルのサンプル・データとして保存するかどうかを選択できます。エクスポート機能を使用してサンプル・データをファイルにエクスポートすることもできます。データ・モデルの実行が失敗した場合は、データ・エンジン・ログを表示してください。
データ・モデルをテストするには:
次に示されているように、データ・モデル・エディタの「データ」タブを選択します。
「SQL問合せ」、「Oracle BI Analysis」および「ビュー・オブジェクト」のデータ・セットの場合: 「データ」タブで、返す行の数を選択します。パラメータが含まれている場合は、テスト用に適切な値を入力します。
「表示」をクリックして、データ・モデルから返されるXMLを表示します。
次のオプションのいずれかを選択してサンプル・データを表示します。
「ツリー表示」を使用して、サンプル・データをデータ階層として表示します。これがデフォルトの表示オプションです。
「表ビュー」を使用して、サンプル・データを、BI Publisherのレポートと同様の書式設定済の表として表示します。
このデータ・モデルに基づいてレポートを作成できます。
テスト・データをデータ・モデル用のサンプル・データとして保存するには:
データ・モデルの実行が正常に完了したら、「サンプル・データとして保存」をクリックします。サンプル・データがデータ・モデルに保存されます。詳細は、データ・モデルへの添付の追加を参照してください。
テスト・データをエクスポートするには:
「SQL問合せ」、「Oracle BI Analysis」および「ビュー・オブジェクト」のデータ・セットの場合: 「データ」タブで、返す行の数を選択します。
データ・モデルの実行が正常に完了したら、「エクスポート」をクリックします。ファイルを開く、またはローカル・ディレクトリに保存するための画面が表示されます。
データ・エンジン・ログを表示するには:
データ・エンジン・ログの表示をクリックします。ファイルを開く、またはローカル・ディレクトリに保存するための画面が表示されます。データ・エンジン・ログ・ファイルは、XMLファイルです。
UCMデータセットをテストするには:
コンテンツ・サーバーの場合、ドキュメントIDおよびコンテンツ・タイプに基づいてドキュメント・コンテンツがコンテンツ(UCM)サーバーから取得されます。
ノート:
ドキュメントIDが空かnullの場合、ドキュメント・コンテンツは空になります。BI Publisherは、現在のユーザーについての情報を格納します。この情報には、レポート・データ・モデルからアクセスできます。
このユーザー情報は、次に説明するシステム変数に格納されています。
システム変数 | 説明 |
---|---|
xdo_user_name |
レポートを実行しているユーザーのユーザーID。例: Administrator |
xdo_user_roles |
レポートを実行しているユーザーに割り当てられたロール。例: XMLP_ADMIN、XMLP_SCHEDULER |
xdo_user_report_oracle_lang |
ユーザーのアカウント・プリファレンスに基づくレポート言語。例: ZHS |
xdo_user_report_locale |
ユーザーのアカウント・プリファレンスに基づくレポート・ロケール。例: en-US |
xdo_user_ui_oracle_lang |
ユーザーのアカウント・プリファレンスに基づくユーザー・インタフェース言語。例: US |
xdo_user_ui_locale |
ユーザーのアカウント・プリファレンスに基づくユーザー・インタフェース・ロケール。例: en-US |
オンライン・レポートでシステム変数を使用すると、BI Publisherによって変数が移入されます。スケジュールされたジョブでは、BI PublisherはXDO_USER_REPORT_LOCALE、XDO_USER_UI_LOCALEおよびXDO_USER_UI_ORACLE_LANGシステム変数を移入しません。
ユーザー情報をデータ・モデルに追加するには、パラメータとして変数を定義して、データ・モデルでパラメータ値を要素として定義します。
また、単にパラメータとして変数を追加して、そのパラメータ値をレポート内で参照できます。
次の問合せがあるとします。
select :xdo_user_name as USER_ID, :xdo_user_roles as USER_ROLES, :xdo_user_report_oracle_lang as REPORT_LANGUAGE, :xdo_user_report_locale as REPORT_LOCALE, :xdo_user_ui_oracle_lang as UI_LANGUAGE, :xdo_user_ui_locale as UI_LOCALE from dual
次の結果が戻されます。
<?xml version="1.0" encoding="UTF-8"?> <! - Generated by Oracle BI Publisher - > <DATA_DS> <G_1> <USER_ROLES>XMLP_TEMPLATE_DESIGNER, XMLP_DEVELOPER, XMLP_ANALYZER_EXCEL, XMLP_ADMIN, XMLP_ANALYZER_ONLINE, XMLP_SCHEDULER </USER_ROLES> <REPORT_LANGUAGE>US</REPORT_LANGUAGE> <REPORT_LOCALE>en_US</REPORT_LOCALE> <UI_LANGUAGE>US</UI_LANGUAGE> <UI_LOCALE>en_US</UI_LOCALE> <USER_ID>administrator</USER_ID> </G_1> </DATA_DS>
次の例では、返されるデータをユーザーIDで制限しています。
select EMPLOYEES.LAST_NAME as LAST_NAME, EMPLOYEES.PHONE_NUMBER as PHONE_NUMBER, EMPLOYEES.HIRE_DATE as HIRE_DATE, :xdo_user_name as USERID from HR.EMPLOYEES EMPLOYEES where lower(EMPLOYEES.LAST_NAME) = :xdo_user_name
lower()関数を使用しているため、xdo_user_nameは必ず小文字の書式になります。BI PublisherはUSERIDを保持しないため、ユーザー名を使用する必要があります。このユーザー名を問合せ内で直接使用するか、参照表に問い合せてユーザーIDを検索します。
LDAPディレクトリに格納されたユーザー属性の値をデータ問合せにバインドするには、BI Publisherに属性名を定義して、必要なバインド変数を作成します。
バインド変数の作成に使用できる属性は、管理者が「セキュリティ構成」ページで定義する必要があります。
この属性は、LDAPの「セキュリティ・モデル」定義にある「データ問合せバインド変数の属性名」フィールドで定義します。ユーザーに対して定義された任意の属性を使用できます(例: memberOf、sAMAccountName、primaryGroupID、mail)。
LDAPの「セキュリティ・モデル」定義にある「データ問合せバインド変数の属性名」フィールドに入力した属性名は、問合せ内で参照できます。
次に、バインド変数の構築方法を示します:
xdo_<attribute name>
たとえば、サンプル属性のmemberOf、sAMAccountName、primaryGroupID、mailが入力済だと仮定します。これらの属性は、次のバインド変数として問合せ内で使用できます。
xdo_memberof xdo_SAMACCOUNTNAME xdo_primaryGroupID xdo_mail
属性については大文字と小文字が区別されませんが、接頭辞のxdo_は小文字にする必要があります。
これらのバインド変数は、データ・モデル内で次のように使用します。
SELECT :xdo_user_name AS USER_NAME, :xdo_user_roles AS USER_ROLES, :xdo_user_ui_oracle_lang AS USER_UI_LANG, :xdo_user_report_oracle_lang AS USER_REPORT_LANG, :xdo_user_ui_locale AS USER_UI_LOCALE, :xdo_user_report_locale AS USER_REPORT_LOCALE, :xdo_SAMACCOUNTNAME AS SAMACCOUNTNAME, :xdo_memberof as MEMBER_OF, :xdo_primaryGroupID as PRIMARY_GROUP_ID, :xdo_mail as MAIL FROM DUAL
LDAPバインド変数は、ユーザーがログインしているLDAPディレクトリに格納された値を返します。