データの変換は、抽出、変換およびロード(ETL)ツールの主要な機能の1つです。Oracle Warehouse Builderには、データの変換方法がいくつか用意されています。この章では、変換について説明し、Warehouse Builderを使用したカスタム変換の作成方法を説明します。また、変換定義をインポートする方法についても説明します。
この章の内容は次のとおりです。
変換とは、データの変換を可能にするPL/SQLファンクション、プロシージャおよびパッケージです。変換は、ETLプロセスを定義するマッピングとプロセス・フローを設計する場合に使用します。
変換は、Warehouse Builderリポジトリに格納されます。変換は、その変換が定義された場所に応じて、変換が定義されているプロジェクトまたはすべてのプロジェクトで共有できます。
変換パッケージの配布はパッケージ・レベルで行われますが、実行は変換レベルです。
Warehouse Builderでの変換は、次のように分類できます。
次の各項では、これらのタイプの変換について詳細に説明します。
Warehouse Builderには、標準的な変換操作を実行できる一連の事前定義済変換が用意されています。事前定義済変換は、組込みおよびシードされたファンクションとプロシージャで構成されているOracleライブラリに含まれています。データの変換には、これらの事前定義済変換を直接使用できます。Oracleライブラリの詳細は、「変換ライブラリのタイプ」を参照してください。
事前定義済変換は、次のカテゴリに編成されています。
管理
文字
コントロール・センター
変換
日付
数値
OLAP
その他
ストリーム
XML
各カテゴリに属する変換の詳細は、第27章「変換」を参照してください。
カスタム変換はユーザーが作成します。カスタム変換では、定義の一部に事前定義済変換を使用できます。
カスタム変換には、次のカテゴリが含まれます。
ファンクション: ファンクション・カテゴリには、スタンドアロン・ファンクションが含まれます。このカテゴリは、グローバル・エクスプローラの「パブリック変換」ノード下で使用できます。また、ファンクション・カテゴリは、プロジェクト・エクスプローラの各Oracleモジュールの「変換」ノード下に自動的に作成されます。ファンクションは、ユーザーが定義するか、またはデータベースからインポートできます。ファンクション変換は、任意の数(0を含む)の入力パラメータを取り、1つの結果値を生成します。
プロシージャ: プロシージャ・カテゴリには、変換として使用されるスタンドアロン・プロシージャがすべて含まれます。このカテゴリは、グローバル・エクスプローラの「パブリック変換」ノード下で使用できます。また、プロシージャ・カテゴリは、グローバル・エクスプローラの各Oracleモジュールの「変換」ノード下に自動的に作成されます。プロシージャは、ユーザーが定義するか、またはデータベースからインポートできます。プロシージャ変換は、任意の数(0を含む)の入力パラメータを取り、任意の数(0を含む)の出力パラメータを生成します。
パッケージ: Warehouse Builderでは、PL/SQLパッケージを作成したりインポートできます。パッケージ本体は変更できます。ただし、ファンクションまたはプロシージャのシグネチャとなるパッケージ・ヘッダーは変更できません。パッケージは、変換ライブラリのプロパティ・シートに表示できます。
PL/SQLタイプ: PL/SQLタイプには、PL/SQLレコード・タイプ、REFカーソル・タイプおよびネストした表のタイプが含まれます。PL/SQLタイプ・カテゴリには、スタンドアロンPL/SQLタイプがすべて含まれます。このカテゴリは、プロジェクト・エクスプローラおよびグローバル・エクスプローラの両方で、各変換の「パッケージ」ノード下に自動的に作成されます。
カスタム変換の作成方法の詳細は、「カスタム変換の定義」を参照してください。
この項に示すカテゴリに加えて、PL/SQLパッケージもインポートできます。インポートしたパッケージのパッケージ本体は変更できますが、ファンクションまたはプロシージャのシグネチャとなるパッケージ・ヘッダーは変更できません。PL/SQLパッケージのインポート方法の詳細は、「PL/SQLのインポート」を参照してください。
Warehouse Builderには、変換を定義できる直観的なユーザー・インタフェースが用意されています。事前定義済変換を使用したり、要件に応じたカスタム変換を定義したりできます。変換はリポジトリに格納されます。カスタム変換は、Oracleモジュールに定義した他のデータ・オブジェクトと同様に、Oracleデータベースに配布できます。
マッピング・エディタには、事前作成済の一連の変換演算子が含まれています。これらの演算子を使用すると、ソースからターゲットへのデータの移動方法を定義するときの標準的な変換を定義できます。変換演算子とは、事前作成済のPL/SQLファンクション、プロシージャ、パッケージ・ファンクションおよびパッケージ・プロシージャです。これらの演算子は入力データを受け取り、その入力データに対して操作を実行し、出力を生成します。これらの演算子の詳細は第26章「データ・フロー演算子」を参照してください。
Warehouse Builderを使用すると、PL/SQLを再利用でき、さらに独自のPL/SQL変換も記述できます。ウェアハウス・ソリューションを迅速に開発できるように、Warehouse Builderには、PL/SQLで記述されたカスタムのプロシージャおよびファンクションが用意されています。
SQLとPL/SQLは、用途が広く定評のある言語として多くの情報専門家に広く使用されているため、Warehouse Builderを使用することで、他の変換言語を開発する時間と費用を削減できます。Warehouse Builderを使用すると、既存の知識と、定評のあるオープンで標準的な技術を使用してソリューションを作成できます。
すべての主要なリレーショナル・データベース管理システムではSQLがサポートされているため、SQLで記述されたすべてのプログラムは、ほとんど修正せずに、あるデータベースから別のデータベースに移行できます。これは、組織内のSQLの知識すべてをWarehouse Builderに完全に移植できることを意味します。Warehouse Builderを使用すると、既存の複雑なカスタム・コードをインポートして保守できます。このようなカスタム変換は、後でWarehouse Builderマッピングで使用できます。
変換ライブラリは、再利用可能な一連の変換で構成されています。リポジトリを作成するたびに、Warehouse Builderでは、該当するプロジェクトに対する変換操作を含む変換ライブラリが作成されます。このライブラリには、標準的なOracleライブラリ、およびプロジェクト内で定義された各Oracleモジュールの追加ライブラリが含まれます。
変換ライブラリは、デザイン・センターにあるグローバル・エクスプローラの「パブリック変換」ノード下で使用できます。図9-1に、「パブリック変換」ノードが開いた状態のグローバル・エクスプローラを示します。
変換ライブラリは、次のように分類できます。
事前定義済ファンクションの集まりで、このライブラリからグローバル共有ライブラリのプロシージャを定義できます。Oracleライブラリはグローバル・エクスプローラに含まれます。「パブリック変換」ノード下の「事前定義済」ノードを開きます。事前定義済変換の各カテゴリは、図9-1に示すように、個別のノードとして表されます。カテゴリのノードを開いて、そのカテゴリの事前定義済変換を表示します。たとえば、「文字」ノードを開いて、Oracleライブラリに格納されている事前定義済の文字変換を表示します。
ユーザーが作成した再利用可能な変換の集まりです。これらの変換は、リポジトリ内に定義されたファンクション、プロシージャおよびパッケージとして分類されます。
グローバル共有ライブラリ内の変換は、図9-1に示すように、「パブリック変換」ノードの「カスタム」ノード下で使用できます。このノード下に作成したすべての変換は、リポジトリ内のすべてのプロジェクトで使用できます。グローバル共有ライブラリに変換を作成する方法の詳細は、「カスタム変換の定義」を参照してください。
グローバル共有ライブラリに定義した変換を配布すると、その変換は、デフォルトのコントロール・センターに関連付けられたロケーションに配布されます。
変換はETLプロセスの様々な場所で使用できるため、Warehouse Builderを使用すると、デザイン・センターの様々な場所から変換ライブラリにアクセスできます。
変換ライブラリには、次の方法でアクセスできます。
式ビルダー
マッピングを作成するときは、ソース・データを変換する式の作成が必要になる場合があります。式ビルダー・インタフェースを使用すると、データの変換に必要な式を作成できます。式には変換を含めることができるため、Warehouse Builderを使用して、式ビルダーから変換ライブラリにアクセスできます。
変換ライブラリは、図9-2に示すように、式ビルダーの「変換」タブで使用できます。TRANSFORMLIBSの下にある「プライベート」ノードには、現行のプロジェクトのみで使用できる変換が含まれます。これらの変換は、Oracleモジュールの「変換」ノード下に作成されます。「パブリック」ノードには、グローバル共有ライブラリのカスタム変換、およびOracleライブラリの事前定義済変換が含まれます。
「変換演算子の追加」ダイアログ
マッピング・エディタの変換演算子を使用すると、Oracleライブラリとグローバル共有ライブラリの両方の変換をマッピングに追加できます。この演算子は、マッピングの一部としてデータを変換する場合に使用できます。
変換の作成ウィザード
変換の作成ウィザードの実装ページを使用すると、ファンクションまたはプロシージャ本体に含まれているPL/SQLコードを指定できます。変換はPL/SQLコードで使用できます。
カスタム変換には、プロシージャ、ファンクションおよびパッケージが含まれます。Warehouse Builderには、各タイプのカスタム変換を作成するためのウィザードが用意されています。カスタム変換は、グローバル共有ライブラリまたは特定のプロジェクトに分類できます。
グローバル共有ライブラリ内のカスタム変換
グローバル共有ライブラリに含まれるカスタム変換は、そのカスタム変換が定義されたリポジトリのすべてのプロジェクトで使用できます。たとえば、リポジトリREP_OWNERのグローバル共有ライブラリにADD_EMPLというファンクションを作成したとします。このプロシージャは、REP_OWNER内のすべてのプロジェクトで使用できます。
リポジトリ内のすべてのプロジェクトで使用できるカスタム変換を定義するには、グローバル・エクスプローラにある「パブリック変換」ノードの「カスタム」ノードを使用します。図9-1に、このような変換の作成に使用するグローバル・エクスプローラを示します。
カスタム変換をグローバル共有ライブラリに作成する手順は、次のとおりです。
グローバル・エクスプローラから「パブリック変換」ノードを開き、次に「カスタム」ノードを開きます。
Warehouse Builderでは、作成可能な変換のタイプが表示されます。これには、ファンクション、プロシージャおよびパッケージが含まれます。PL/SQLタイプはパッケージの一部としてのみ作成できることに注意してください。
定義する変換のタイプを右クリックして「新規」を選択します。
たとえば、ファンクションを作成するには、「ファンクション」を右クリックして「新規」を選択します。PL/SQLタイプを作成するには、そのPL/SQLタイプを作成するパッケージを開いて、「PL/SQLタイプ」を右クリックし、「新規」を選択します。
ファンクションまたはプロシージャの場合、Warehouse Builderでは、ファンクションの作成ウィザードまたはプロシージャの作成ウィザードのようこそページが表示されます。PL/SQLタイプの場合は、PL/SQLタイプの作成ウィザードのようこそページが表示されます。
「次へ」をクリックして次に進みます。ウィザードの他のページの詳細は、「ファンクションおよびプロシージャの定義」を参照してください。
パッケージの場合、Warehouse Builderでは、「変換ライブラリの作成」ダイアログが表示されます。パッケージの名前および説明(オプション)を入力し、「OK」をクリックします。新規のパッケージが「パッケージ」ノードに追加されます。続いて、このパッケージに属するプロシージャ、ファンクションまたはPL/SQLタイプを作成できます。PL/SQLタイプの作成方法の詳細は、「PL/SQLタイプの定義」を参照してください。
プロジェクト内のカスタム変換
現行のモジュールまたはプロジェクトのみに必要なカスタム変換の定義が必要になる場合があります。その場合は、プロジェクトのOracleモジュールにカスタム変換を定義できます。このようなカスタム変換は、現行のリポジトリ内のすべてのプロジェクトからアクセスできます。たとえば、PROJECT1とPROJECT2の2つのプロジェクトが含まれるREP_OWNERというリポジトリ所有者を考えてみます。PROJECT1のSALESというOracleモジュールに、CALC_SALというプロシージャを定義します。このプロシージャは、PROJECT1に属するすべてのモジュールで使用できますが、PROJECT2ではアクセスできません。
図9-3に、カスタム変換を作成できるプロジェクト・エクスプローラを示します。カスタム変換はそのカスタム変換が定義されたプロジェクト内でアクセス可能です。カスタム変換を作成するプロジェクトのOracleモジュールを開きます。次に、そのモジュール下の「変換」ノードを開きます。カスタム変換のタイプごとに1つのノードが表示されます。これらのノードを使用して変換を作成します。
Oracleモジュールにカスタム変換を定義する手順は、次のとおりです。
プロジェクト・エクスプローラからOracleウェアハウス・モジュールのノードを開き、次に「変換」ノードを開きます。
作成する変換のタイプを右クリックして「新規」を選択します。
たとえば、パッケージを作成するには、「パッケージ」を右クリックして「新規」を選択します。PL/SQLタイプを作成するには、そのタイプを作成するパッケージ・ノードを開いて、「PL/SQLタイプ」を右クリックし、「新規」を選択します。
ファンクションまたはプロシージャの場合、Warehouse Builderでは、ファンクションの作成ウィザードまたはプロシージャの作成ウィザードのようこそページが表示されます。PL/SQLタイプの場合は、PL/SQLタイプの作成ウィザードのようこそページが表示されます。「次へ」をクリックして、前に進みます。
ウィザードの残りのページについては、「ファンクションおよびプロシージャの定義」を参照してください。パッケージの場合は、Warehouse Builderで「変換ライブラリの作成」ダイアログが表示されます。パッケージの名前および説明(オプション)を入力し、「OK」をクリックします。パッケージが「パッケージ」ノード下に追加されます。続いて、このパッケージに属するプロシージャ、ファンクションまたはPL/SQLタイプを作成できます。PL/SQLタイプの作成方法の詳細は、「PL/SQLタイプの定義」を参照してください。
ファンクションまたはプロシージャを定義するには、ファンクションの作成ウィザードまたはプロシージャの作成ウィザードの次の各ページを使用します。
名前と説明ページを使用してカスタム変換を記述します。このページで次の詳細を指定します。
名前Name: カスタム変換の名前を表します。ネーミング規則の詳細は、「データ・オブジェクトのネーミング規則」を参照してください。
説明: カスタム変換の説明を表します。これはオプションのフィールドです。
戻り型: ファンクションにより戻される値のデータ型を表します。戻り型は、ドロップダウン・リストの使用可能なオプションから選択します。このフィールドは、ファンクションにのみ適用可能です。
パラメータ・ページを使用して、変換の入力パラメータと出力パラメータを定義します。パラメータごとに次の詳細を指定します。
名前: パラメータ名を入力します。
タイプ: ドロップダウン・リストからパラメータのデータ型を選択します。
I/O: パラメータのタイプを選択します。使用可能なオプションは「入力」、「出力」および「入力/出力」です。
必須: パラメータが必須かどうかを指定します。パラメータを必須として指定するには「はい」を、オプションとして指定するには「いいえ」を選択します。
デフォルト値: パラメータのデフォルト値を入力します。デフォルト値は、ファンクションまたはプロシージャの実行時にパラメータ値を指定しない場合に使用されます。
実装ページを使用して、変換のコードなど、実装詳細を指定します。ファンクションまたはプロシージャの実装に使用するコードを指定するには、「コード・エディタ」をクリックします。Warehouse Builderにより、新規変換ウィザードの「コード・エディタ」ウィンドウが表示されます。このエディタには2つのパネルがあります。上部パネルにはコードが表示され、下部パネルにはファンクション・シグネチャとメッセージが表示されます。
ファンクションを作成する場合は、さらに次のオプションが表示されます。
ファンクションがDETERMINISTIC: このヒントは、ファンクション・コールが冗長になることを防ぐのに役立ちます。ストアド・ファンクションが以前に同じ引数でコールされている場合、前の結果が使用できます。ファンクションの結果は、セッション変数またはスキーマ・オブジェクトの状態に依存しません。そうでない場合、結果はコールによって異なります。ファンクションベースの索引またはクエリー・リライトが有効なマテリアライズド・ビューからコールすることができるのは、DETERMINISTICファンクションのみです。
パラレル実行に対してファンクションを有効化: このオプションでは、ストアド・ファンクションをパラレルDML評価の子セッションで安全に使用できることを宣言します。メイン(ログオン)セッションの状態が、子セッションと共有されることはありません。子セッションには、それぞれセッションの開始時に初期化される各自の状態があります。ファンクションの結果は、セッション(静的)変数の状態に依存しません。そうでない場合、結果はセッションによって異なります。
サマリー・ページには、前のウィザード・ページで選択したオプションのサマリーが表示されます。ファンクションまたはプロシージャの定義を完了するには「終了」をクリックします。Warehouse Builderにより、ファンクションまたはプロシージャが作成され、グローバル・エクスプローラの「パブリック変換」ノードおよび「カスタム」ノード下の対応するフォルダに表示されます。
PL/SQLタイプはパッケージ内に定義する必要があります。これらのタイプは独立して存在できません。
PL/SQLタイプを使用すると、コレクション・タイプ、レコード・タイプおよびREFカーソル・タイプをWarehouse Builderに作成できます。PL/SQLタイプは、サブプログラムのパラメータとして、またはファンクションに対する戻り型として使用します。PL/SQLタイプをサブプログラムに対するパラメータとして使用すると、任意の数の要素を処理できます。バルクSQLを使用してデータベース表との間でデータを移動するには、コレクション・タイプを使用します。PL/SQLタイプの詳細は、Oracle 10g Database PL/SQLユーザーズ・ガイドおよびリファレンスを参照してください。
Warehouse Builderを使用すると、次のPL/SQLタイプを作成できます。
PL/SQLレコード・タイプ
レコード・タイプを使用すると、パッケージにレコードを定義できます。レコードとは、複数のフィールドを持つ複合データ構造です。各フィールドのデータ型は異なる場合があります。関連する項目を保持し、その項目を単一のパラメータを使用してサブプログラムに渡すには、レコードを使用します。
たとえば、EMPLOYEEレコードには、ID、姓、名前、住所、誕生日、雇用日、給与など、従業員に関連する詳細を格納できます。EMPLOYEEレコードに基づいてレコード・タイプを作成し、そのレコード・タイプを使用してサブプログラム間で従業員データを渡すことができます。
REFカーソル・タイプ
REFカーソル・タイプを使用すると、パッケージ内にREFカーソルを定義できます。REFカーソルは単一の問合せにバインドされず、異なる複数の結果セットを指し示すことができます。REFカーソルは、あるサブプログラムで問合せを実行し、その結果を別のサブプログラムで処理する場合に使用します。また、REFカーソルを使用すると、問合せの結果セットを、PL/SQLが格納されたサブプログラムと様々なクライアント(OCIクライアントやOracle Formsアプリケーションなど)との間で渡すことができます。
REFカーソルは、すべてのPL/SQLクライアントで使用できます。たとえば、REFカーソルをPL/SQLホスト環境(OCIやPro*Cプログラム・クライアントなど)で宣言し、そのREFカーソルを入力ホスト変数(バインド変数)としてPL/SQLに渡すことができます。PL/SQLエンジンを持つOracle Formsなどのアプリケーション開発ツールでは、クライアント側全体でカーソル変数を使用できます。また、リモート・プロシージャ・コールを介して、カーソル変数をクライアントとデータベース・サーバーとの間で受け渡すことができます。
ネストした表のタイプ
ネストした表のタイプは、パッケージ内にネストした表を定義するために使用します。ネストした表とは順不同の要素のセットで、要素はすべて同じデータ型です。ネストした表を要素に持つネストした表を定義すると、多次元配列のモデルを作成できます。
たとえば、任意の数の従業員IDを保持できるネストした表のタイプを作成できます。このネストした表のタイプは、ネストした表のタイプに含まれる従業員レコードのみを処理するサブプログラムにパラメータとして渡すことができます。
SALES表には、全世界に事業所を持つ組織の毎日の売上詳細が格納されます。この表には、売上日、顧客ID、製品ID、売上金額、売上数量、および売上の計上に使用した通貨が含まれます。経営側は、指定期間内の全世界の売上を単一の通貨(たとえばUSドル)で分析することを望んでいます。このため、すべての売上値をUSドルに換算する必要があります。通貨換算レートは毎日変化する可能性があるため、売上金額は、売上日における売上通貨の換算レートを使用して計算する必要があります。
PL/SQLレコード・タイプを使用したソリューション
PL/SQLレコード・タイプを含むマッピングを使用することで、要求された通貨で売上金額を取得できます。各日の通貨換算レートは、プロシージャを使用してWebサイトから取得します。このデータをSALES表のデータと結合して、要求された通貨で売上金額を取得します。
図9-4に、前のシナリオに対するソリューションの取得に使用するマッピングを示します。
このマッピングでは、プロシージャCURR_CONV_PROCで指定期間内の通貨換算レートを取得します。このプロシージャでは、売上通貨、売上値の変換が必要場合の変換先通貨、および通貨換算が必要な期間を入力として取得します。各日付の通貨換算値は、この情報が記述されているWebサイトから取得されます。このデータは、ファンクションの出力パラメータであるレコード・タイプCURR_CONV_RECに格納されます。このレコード・タイプには、日付とその日付の通貨換算値の2つの属性が含まれます。
通貨換算レートは、CURRENCY_TABという表に格納されます。次に、ジョイナ演算子を使用し、売上日を結合条件として使用して、SALES表とCURRECNY_TAB表を結合します。ジョイナ演算子で、SALES表がINGRP1、CURRENCY_TAB表がINGRP2で表されている場合、結合条件はINGRP1.SALE_DATE = INGRP2.CONV_DATEとなります。
売上金額と通貨換算レートを乗算し、要求された通貨で売上合計を取得するには、式演算子を使用します。CONV_SALES_TABには、換算後の売上データが格納されます。
PL/SQLタイプは、プロジェクト・エクスプローラまたはグローバル・エクスプローラで作成できます。詳細は、「カスタム変換の定義」を参照してください。
PL/SQLタイプを作成する手順は、次のとおりです。
名前と説明ページを使用して、PL/SQLタイプの名前を入力し、必要に応じて説明も入力します。また、このページを使用して、作成するPL/SQLタイプのタイプを選択します。
次のいずれかのPL/SQLタイプを作成できます。
PL/SQLレコード・タイプ
PL/SQLレコード・タイプを作成するには、このオプションを選択します。レコード・タイプは、属性に異なるデータ型を保持できる複合データ構造です。レコード・タイプを使用して、関連アイテムを保持し、これらのアイテムを1つのパラメータとしてサブプログラムに渡すことができます。たとえば、従業員ID、名、姓、入社日、部門IDの属性を持つ1つの従業員レコードを作成できます。
REFカーソル・タイプ
REFカーソルを作成するには、このオプションを選択します。REFカーソルは、結果セットのポインタに似ています。REFカーソルには、特定の問合せに限定されないという利点があります。
ネストした表のタイプ
ネストした表を作成するには、このオプションを選択します。ネストした表は値のセットを表します。ネストした表は、要素数が宣言されていない1次元の配列に似ています。ネストした表を使用すると、複数の表を要素として持つ1つのネストした表を作成して、多次元配列をモデル化できます。
名前を指定し、作成するPL/SQLタイプ・オブジェクトのタイプを選択した後、「次へ」をクリックします。
属性ページを使用して、PL/SQLレコード・タイプの属性を定義します。PL/SQLレコード・タイプの属性のみを指定します。PL/SQLレコードには、少なくとも1つの属性が必要です。
属性ごとに、次の内容を定義します。
名前: 属性の名前。レコード・タイプ内で一意である必要があります。
タイプ: 属性のデータ型。ドロップダウン・リストからデータ型を選択します。
長さ: データ型の長さ(文字データ型の場合)。
精度: 属性に使用できる合計桁数(数値データ型の場合)。
スケール: 小数点以下の合計桁数(数値データ型の場合)。
秒精度: 日時フィールドの小数部の桁数。0から9までの数値を入力できます。「秒精度」は、TIMESTAMPデータ型に対してのみ使用されます。
「次へ」をクリックして次の手順に進みます。
戻り型ページを使用して、PL/SQLタイプの戻り型を選択します。REFカーソルおよびネストした表を作成する場合は、戻り型を指定する必要があります。
REFカーソルを定義する手順は、次のとおりです。
REFカーソルの戻り型は、PL/SQLレコード・タイプのみです。PL/SQLレコード・タイプの名前がわかっている場合は、「検索」フィールドに名前を入力し、「実行」をクリックして検索できます。
「検索」フィールドの下のエリアに使用可能なPL/SQLタイプが表示されます。これらのPL/SQLタイプは、「パブリック」と「プライベート」の2つのノードの下にグループ化されます。「パブリック」ノードを開いて、Oracle共有ライブラリに含まれているPL/SQLタイプを表示します。このタイプは、パッケージ名別にグループ化されます。「プライベート」ノードには、Oracleモジュール内のパッケージの一部として作成されるPL/SQLタイプが含まれています。現在のプロジェクトに属しているPL/SQLタイプのみが表示されます。各Oracleモジュールはノードで表されます。モジュール内では、PL/SQLタイプは属しているパッケージごとにグループ化されます。
ネストした表を定義する手順は、次のとおりです。
ネストした表の場合、戻り型はスカラー・データ型またはPL/SQLレコード・タイプになります。PL/SQLタイプによって戻される型に基づいて、このページで次のオプションのいずれかを選択します。
戻り型としてスカラー型を選択します。
このオプションを使用すると、スカラー型を戻すPL/SQLタイプを作成できます。ドロップダウン・リストを使用してデータ型を選択します。
戻り型としてPL/SQLレコード・タイプを選択します。
このオプションを使用すると、PL/SQLレコード・タイプを戻すPL/SQLタイプを作成できます。戻されるPL/SQLレコード・タイプの名前がわかっている場合は、「検索」フィールドにその名前を入力して「実行」をクリックします。検索結果がオプションの下のエリアに表示されます。
表示される使用可能なタイプのリストから戻り型を選択することもできます。このオプションの下のエリアには、「パブリック」と「プライベート」の2つのノードがあります。「パブリック」ノードには、Oracle共有ライブラリの一部であるPL/SQLレコード・タイプが含まれています。PL/SQLレコード・タイプは、属しているパッケージ別にグループ化されます。「プライベート」ノードには、現在のプロジェクト内で各Oracleモジュールの変換として作成されるPL/SQLレコード・タイプが含まれています。このPL/SQLレコード・タイプは、モジュール別にグループ化されます。PL/SQLタイプによって戻されるPL/SQLレコード・タイプを選択します。
「次へ」をクリックして、PL/SQLタイプの作成に進みます。
サマリー・ページには、ウィザードの各ページで選択したオプションが表示されます。オプションを確認してください。オプションを変更するには、「戻る」をクリックします。「終了」をクリックすると、PL/SQLタイプが作成されます。
変換の定義は、エディタを使用して編集できます。プロパティの編集は常に一貫して行ってください。たとえば、パラメータの名前を変更した場合は、実行コード内の名前も変更する必要があります。
ファンクションの編集ダイアログを使用すると、ファンクション定義を編集できます。プロシージャ定義を編集するには、プロシージャの編集ダイアログを使用します。
ファンクションまたはプロシージャを編集する手順は、次のとおりです。
プロジェクト・エクスプローラから、変換が作成されているOracleモジュールを開きます。次に、「変換」ノードを開きます。
グローバル共有ライブラリに含まれる変換を編集するには、グローバル・エクスプローラから「パブリック変換」ノードを開き、次に「カスタム」ノードを開きます。
編集するファンクション、プロシージャまたはパッケージの名前を右クリックして、「エディタを開く」を選択します。
ファンクションの編集ダイアログまたはプロシージャの編集ダイアログが表示されます。次のタブを使用して、ファンクションまたはプロシージャの定義を編集します。
パッケージを編集する場合、Warehouse Builderでは、トランスフォーメーション・ライブラリの編集ダイアログが表示されます。編集できるのは、パッケージの名前と説明のみです。パッケージ内に含まれるファンクションおよびプロシージャは、ファンクションまたはプロシージャの編集に使用する手順で編集できます。
「名前」タブを使用して、ファンクションまたはプロシージャの名前と説明を編集します。ファンクションの場合、データの戻り型も編集できます。
「パラメータ」タブを使用して、ファンクションまたはプロシージャの新規パラメータを編集、追加または削除します。また、パラメータの属性を編集および定義できます。「パラメータ」タブの内容は、変換の作成ウィザード: パラメータ・ページの内容と同じです。パラメータ・ページの内容の詳細は、「パラメータ・ページ」を参照してください。
「実装」タブを使用して、ファンクションまたはプロシージャのPL/SQLコードを確認します。「コード・エディタ」をクリックしてコードを編集します。「実装」タブの内容は、変換の作成ウィザード: 実装ページの内容と同じです。実装ページの内容の詳細は、「実装ページ」を参照してください。
PL/SQLタイプの編集ダイアログを使用すると、PL/SQLタイプの定義を編集できます。PL/SQLタイプを編集する手順は、次のとおりです。
プロジェクト・エクスプローラから、PL/SQLタイプを含むOracleモジュールを開きます。次に、「変換」ノードを開きます。
グローバル共有ライブラリに格納されているPL/SQLタイプを編集するには、グローバル・エクスプローラで「パブリック変換」 ノードを開き、次に「カスタム」ノードを開きます。
PL/SQLタイプを含むパッケージを開き、次に「PL/SQLタイプ」ノードを開きます。
編集するPL/SQLタイプの名前を右クリックして、「エディタを開く」を選択します。
PL/SQLタイプの編集ダイアログが表示されます。次のタブを使用して、PL/SQLタイプを編集します。
「名前」タブには、PL/SQLタイプの名前と説明が表示されます。このタブを使用して、PL/SQLタイプの名前または説明を編集します。
PL/SQLタイプの名前を変更するには、名前を選択して新しい名前を入力します。
「属性」タブには、PL/SQLレコード・タイプの既存の属性の詳細が表示されます。このタブは、PL/SQLレコード・タイプに対してのみ表示されます。既存の属性を変更、新規属性を追加または属性を削除できます。
新規属性を追加するには、空白行の「名前」列をクリックして属性の詳細を指定します。属性を削除するには、属性を表す行の左側にあるグレーのセルを右クリックし、「削除」を選択します。
「戻り型」タブを使用して、PL/SQLタイプの戻り型の詳細を変更します。REFカーソルの場合、戻り型はPL/SQLレコードです。ネストした表の場合、戻り型はPL/SQLレコード・タイプまたはスカラー・データ型になります。
PL/SQLファンクション、プロシージャおよびパッケージをWarehouse Builderプロジェクトにインポートするには、インポート・ウィザードを使用します。
次の手順では、PL/SQLパッケージを他のソースからWarehouse Builderにインポートする方法を説明します。
PL/SQLファンクション、プロジェクトまたはパッケージをインポートする手順は、次のとおりです。
プロジェクト・エクスプローラからプロジェクト・ノードを開き、次に「データベース」ノードを開きます。
Oracleモジュールのノードを右クリックして「インポート」を選択します。
Warehouse Builderでは、インポート・メタデータ・ウィザードのようこそページが表示されます。
「次へ」をクリックします。
フィルタ情報ページの「オブジェクト・タイプ」フィールドで、「PL/SQL変換」を選択します。
「次へ」をクリックします。
インポート・メタデータ・ウィザードのオブジェクト選択ページが表示されます。
「使用可能なオブジェクト」リストから、ファンクション、プロシージャまたはパッケージを選択します。オブジェクトを「選択したオブジェクト」リストに移動する際、単一オブジェクトの移動には一重矢印ボタンを、複数オブジェクトの移動には二重矢印ボタンをクリックします。
「次へ」をクリックします。
インポート・メタデータ・ウィザードのサマリーとインポート・ページが表示されます。
インポート情報を確認します。選択した内容を変更するには、「戻る」をクリックします。
「終了」をクリックして、選択したPL/SQL変換をインポートします。
Warehouse Builderで、インポート結果ページが表示されます。
「OK」をクリックしてインポートを続行します。インポート・プロセスを取り消すには、「元に戻す」をクリックします。
インポートしたPL/SQL情報が、データをインポートしたOracleノードの「変換」ノード下に表示されます。
インポートしたPL/SQLを使用する際には、次の点に注意してください。