![]() 前へ |
![]() 次へ |
SALES表には、全世界に事業所を持つ組織の毎日の売上が格納されます。この表には、売上ID、売上日、顧客ID、製品ID、売上金額、売上数量、および売上の計上に使用した通貨が含まれます。経営側は、指定期間内の全世界の売上を単一の通貨(たとえばUSドル)で分析することを望んでいます。このため、すべての売上値をUSドルに換算する必要があります。通貨換算レートは毎日変化する可能性があるため、売上金額は、売上日における売上通貨の換算レートを使用して計算する必要があります。
PL/SQLレコード・タイプを使用したソリューション
このマッピングでは、様々な通貨で格納された個々の売上データを基に、指定通貨での売上値を取得し、このデータをターゲット表にロードします。このマッピングを作成する手順は、次のとおりです。
グローバル・ナビゲータで、パッケージを作成します。このパッケージにCURR_CONV_PROCというプロシージャを作成します。
このプロシージャは、指定期間内に毎日Webサイトから通貨換算値を取得します。このプロシージャの入力パラメータは、売上通貨、売上値を換算する必要のある通貨、および通貨換算が必要な期間です。このデータは、タイプCURR_CONV_RECのPL/SQLレコード・タイプに格納されます。このレコード・タイプは、日付と変換値の2つの属性を含んでいます。
PL/SQLレコード・タイプはパッケージの一部として作成します。
変換演算子を含むマッピングを作成します。この演算子は、CURR_CONV_PROCプロシージャにバインドされます。
マッピング入力パラメータ演算子を使用して、変換演算子の入力パラメータの値を指定します。
変換演算子の出力グループは、タイプCURR_CONV_RECのPL/SQLレコード・タイプです。
オブジェクトの拡張演算子を使用して、このレコード・タイプに格納された個々の値を取得し、表CURRENCY_TABに格納します。
アグリゲータ演算子を使用して、各注文書の売上詳細を集計します。
SALES表はトランザクション表であり、データを正規化形式で格納します。各注文書の集計売上を取得するには、アグリゲータ演算子を使用して売上データを集計します。
ジョイナ演算子を使用して、集計後の売上詳細を結合します。この集計後の売上詳細は、CURRENCY_TAB表のデータを使用したアグリゲータ演算子の出力です。売上日が結合条件として使用されます。
式演算子を使用して売上金額と通貨換算レートを乗算し、必要な通貨での売上合計を取得します。換算後の売上データをCONV_SALES_TAB表にロードします。