ASCIIおよびバイナリ・フラット・ファイルのデータをソースやターゲットとして使用できます。フラット・ファイル・ソースの場合は、外部表を使用して、データのSQL表現を作成できます。
この章の内容は次のとおりです。
フラット・ファイルは、マッピングでソースまたはターゲットとして使用できます。
フラット・ファイルをソースとして使用するには、最初にメタデータをワークスペースに取り込みます。この手順は、ソース・メタデータがASCII形式であるかバイナリ形式であるかによって異なります。ASCII形式については、「ワークスペースへのASCIIファイルのインポート」を参照してください。バイナリ形式については、「ワークスペースへの既存バイナリ・ファイルの追加」を参照してください。
ファイルをインポートした後は、そのファイルをマッピングのソースとして使用できます。マッピングでは、ファイルに永続名が設定されている必要があります。ただし、ソース・ファイルが生成ファイルである場合、つまり、メイン・フレームで生成されるたびに一意の名前が割り当てられる場合は、実行時に新しい名前を指定できます。
フラット・ファイル定義をインポートする手順は、次のとおりです。
インポートするファイルに対するネットワークの接続性を確立します。
データファイルに直接アクセスする場合、およびクライアントとデータファイルが異なるタイプのオペレーティング・システムに存在している場合は、NFSまたはその他のネットワーク・プロトコルを介して必要な接続性を確立するように、システム管理者に依頼してください。
クライアントとデータファイルがWindowsオペレーティング・システムに存在している場合は、クライアント・コンピュータでアクセスできるドライブにデータファイルを格納します。
既存のファイルのサンプリング元となる、ファイル・システム内の各フォルダに対するモジュールを作成します。
インポート・メタデータ・ウィザードを使用して、インポートするフラット・ファイルを選択します。接続情報ページで、フラット・ファイル・サンプル・ウィザードを起動するオプションを選択します。
フラット・ファイル・サンプル・ウィザードを使用すると、フラット・ファイルのサンプルを表示して、レコード編成およびファイル・プロパティを定義できます。ウィザードでは、文字列やASCIIなど、一般的なフラット・ファイル・フォーマットをサンプリングおよび定義できます。
複雑なレコード構造のファイルの場合、フラット・ファイル・サンプル・ウィザードがデータのサンプリングに適していない場合があります。このような場合は、「ワークスペースへの既存バイナリ・ファイルの追加」を参照してください。
フラット・ファイルをマッピングのソースまたはターゲットとして使用します。
ファイルをソースとして使用する場合は、ファイルに基づいて外部表を作成する方法の利点について考慮してください。詳細は、「外部表演算子とフラット・ファイル演算子」および「新しい外部表定義の作成」を参照してください。
フラット・ファイルの構造を変更した場合は、ファイル定義を更新します。
既存のバイナリ・フラット・ファイルを追加する手順は、次のとおりです。
新規ファイルの作成先となる、ファイル・システム内の各フォルダに対するモジュールを作成します。
ウィザードのプロンプトに従って、「新規フラット・ファイルの記述」のファイル名の設定に関する特別な指示に注意してください。
外部表は、読取り専用の表で、フラット・ファイルなど、外部データ内の単一のレコード・タイプに関連付けられています。外部表は、非リレーショナル・ソースのデータをリレーショナル表形式で表したものです。マッピングに外部表を使用するとき、列のプロパティは、フラット・ファイルのインポート時に定義したSQLプロパティに基づきます。フラット・ファイルのSQLプロパティの詳細は、「SQLプロパティ」を参照してください。
マッピングのソースとして外部表を使用する場合は、通常のソース表と同様に使用できます。Warehouse Builderでは、外部表から行を選択するSQLコードが生成されます。表を経由してファイルに並列アクセスすることもできます。
注意: 外部表はソース表としてのみ使用します。 |
別のデータベースから既存の外部表をインポートするか、「新規外部表定義の作成」で説明するように新規の外部表を定義できます。
データをフラット・ファイルからマッピングに取り込むには、外部表演算子またはフラット・ファイル演算子のいずれかを使用します。どちらの方法を使用するかを決めるには、データをどのように変換する必要があるかを考慮します。
外部表演算子を使用した場合は、マッピングによってSQLコードが生成されます。データを他の表と結合する場合、または複雑な変換が必要な場合は、外部表を使用します。
フラット・ファイル演算子を使用した場合は、SQL*Loaderコードが生成されます。このフラット・ファイル演算子は、抽出するデータが大量にあり、変換がほとんど必要ない場合に使用できます。フラット・ファイル演算子では、ステージング表へのデータのロード、索引の追加、および必要に応じた変換の実行が可能です。フラット・ファイル演算子によって取り込まれるデータで実行可能な変換は、SQL*Loader変換のみに制限されます。
外部表を使用して、単一のセット・ベースのSQL DML文内でロードおよび変換を組み合せることができます。ターゲット表に挿入する前に、データを一時的にステージングする必要はありません。
外部表とSQL*Loader(フラット・ファイル演算子)の相違点の詳細は、Oracle Databaseユーティリティを参照してください。
新しいターゲットを作成するには新しいフラット・ファイルを定義します。
ターゲットとしての新規フラット・ファイルの作成
新規フラット・ファイルを設計する手順は、次のとおりです。
新規ファイルの作成先となる、ファイル・システム内の各フォルダに対するモジュールを作成します。
フラット・ファイルのインポートまたは定義のいずれかを行うことができます。フラット・ファイル・モジュールを作成してフラット・ファイルの定義を保存します。
フラット・ファイル・モジュールを作成する手順は次のとおりです。
プロジェクト・エクスプローラの「ファイル」ノードを右クリックして、「新規」を選択します。
Warehouse Builderに、モジュールの作成ウィザードのようこそページが表示されます。
次の手順でモジュールを定義します。
終了ページには、ウィザードの各ページで入力した情報の要約が表示されます。「終了」をクリックすると、ウィザードによりフラット・ファイル・モジュールが作成され、モジュール名がプロジェクト・エクスプローラに挿入されます。
接続情報ページのウィザードで「終了後にインポート」を選択していると、「フラット・ファイルからの定義のインポート」で説明するインポート・メタデータ・ウィザードが表示されます。
また、新規フラット・ファイルを定義する場合は、「フラット・ファイルの作成ウィザードの使用方法」を参照してください。
フラット・ファイル・モジュールの名前と説明(オプション)を入力します。
既存のファイルのサンプリング元または新規ファイルの作成先となる、ファイル・システム内の各フォルダに対するモジュールを作成します。したがって、フォルダ名に基づいてモジュール名を設定することを考慮してください。各ファイル・モジュールは、ファイル・システム内の1つのフォルダに対応しています。
たとえば、c:¥folder1
およびc:¥folder1¥subfolder
などのサブフォルダからフラット・ファイルをインポートするには、C_FOLDER1およびC_FODLER1_SUBFOLDERなど、2つのファイル・モジュールを作成します。
フラット・ファイル・モジュールのロケーションは、既存のファイルのサンプリング元、または新規ファイルの作成先となる、ファイル・システム内のフォルダです。新規ロケーションを定義するか、または既存のロケーションを選択できます。
フラット・ファイル・ロケーションでは、ファイル・システム内のフォルダが識別されます。サブフォルダは含まれません。
接続ページには、入力したモジュール名に基づいて名前が付けられたデフォルトのロケーションが表示されます。
このモジュールにファイルをインポートする場合は、「編集」をクリックしてロケーションの値を割り当てます。このロケーションは、既存のファイルのサンプリング元、または新規ファイルの作成先のフォルダになります。
フラット・ファイルの作成ウィザードを使用して、新規のフラット・ファイルを設計します。このウィザードの主な用途は、マッピングのターゲットとして使用するフラット・ファイルを作成することです。ウィザードの完了後は、「既存のフラット・ファイルに基づくソースまたはターゲットの作成」で説明するステップに進むことができます。
このウィザードを、既存のフラット・ファイルからメタデータを導入する第2の方法として使用することも考慮してください。たとえば、既存のファイルに複合レコード・フォーマットがあり、フラット・ファイル・サンプル・ウィザードが有効なソリューションでない場合などに、このウィザードを使用します。
フラット・ファイルの作成ウィザードに表示される指示に従って、次のステップを完了できます。
名前と説明ページを使用して、作成する新規フラット・ファイルを記述します。ファイル設定情報の入力後に、「次へ」をクリックしてウィザードを続行します。
名前: この名前でワークスペース内のファイルを一意に識別します。空白や記号を含まない名前を入力してください。アンダースコアは使用できます。大文字と小文字を使用できます。名前の先頭に数字を使用しないでください。予約語は使用しないでください。予約語の一覧は、Warehouse Builderオンライン・ヘルプの予約語に関する項を参照してください。
デフォルト物理ファイル名: 新規のファイルを作成する場合は、この名前を空白にしておくことができます。既存のバイナリ・ファイルを定義する場合は、ファイル名を入力します。ウィザードの後半で指定するため、ファイル名にはファイル・パスを含めないでください。
キャラクタ・セット: キャラクタ・セットでは、データベース・オブジェクトとファイルで表現できる言語を決定します。キャラクタ・セットを選択するか、Warehouse Builderをホスティングするコンピュータに定義されたキャラクタ・セットであるデフォルトを受け入れます。NLSキャラクタ・セットの詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください。
説明: ファイルの説明(オプション)を入力できます。
ファイル・プロパティ・ページを使用して、新規フラット・ファイルの「レコード編成」、「論理レコード定義」、「スキップする行数」および「フィールド書式」を指定します。
ファイル内でレコードを編成する方法を指定します。ファイル内の各レコードの長さを決定する方法を指定するには、次の2つのオプションのいずれかを選択します。
レコード・デリミタ: このオプションは、各レコードの終了をデリミタで指定する場合に選択してください。次に、レコード・デリミタを指定します。デフォルトのレコード・デリミタである改行(¥n)をそのまま使用するか、新しい値を入力できます。
レコード長(文字数): このオプションは、すべてのレコードの長さが同一のファイルを作成する場合に選択してください。次に、各レコードの文字数を指定します。マルチバイト・キャラクタのファイルでは、マルチバイト・キャラクタを1文字として計算します。
ウィザードでは、デフォルトで、1物理レコードに1論理レコードが対応するようにファイルが作成されます。このデフォルトを上書きして、複数の物理レコードに対応する論理レコードで構成されたファイルを作成できます。
1論理レコード当たりの物理レコード数: データファイルには、論理レコードごとに固定数の物理レコードが含まれます。
PHYSICAL_RECORD1 PHYSICAL_RECORD2 PHYSICAL_RECORD3 PHYSICAL_RECORD4
前述の例で、論理レコード当たりの物理レコード数が2の場合は、PHYSICAL_RECORD1
とPHYSICAL_RECORD2
が1つの論理レコードを形成し、PHYSICAL_RECORD3
とPHYSICAL_RECORD4
が2番目の論理レコードを形成します。
現行の物理レコードの終了文字: データファイルには、可変数の物理レコードが含まれます。物理レコードの末尾には、そのレコードが次の物理レコードと関連することを表す継続文字が付加されます。
次の例では、継続文字はレコード末尾のパーセント記号(%)です。
PHYSICAL_RECORD1% PHYSICAL_RECORD2 end log rec 1 PHYSICAL_RECORD3% PHYSICAL_RECORD4 end log rec 2
次の物理レコードの開始文字: データファイルには、可変数の物理レコードが含まれます。物理レコードの先頭には、そのレコードが前の物理レコードと関連することを表す継続文字が付加されます。
次の例は、レコードの先頭に継続文字がある2つの論理レコードを示しています。
PHYSICAL_RECORD1 %PHYSICAL_RECORD2 end log rec1 PHYSICAL_RECORD3 %PHYSICAL_RECORD4 end log rec 2
この方法を使用すると、3つ以上のレコードを結合できます。次の例では、レコード先頭の継続文字を使用した、1論理レコード当たり4つの物理レコードを示しています。
PHYSICAL_RECORD1 %PHYSICAL_RECORD2 %PHYSICAL_RECORD25 %PHYSICAL_RECORD26 (end log record 1) PHYSICAL_RECORD3 %PHYSICAL_RECORD4 %PHYSICAL_RECORD45 %PHYSICAL_RECORD46 (end log record 2)
新規ファイルを作成するとき、この値は空白のままにできます。
既存のファイルを定義する場合は、「スキップする行数」に実行時にスキップするレコード数を指定します。この操作は不要なヘッダー情報をスキップするのに役立ちます。レコードの1つにフィールド名が含まれている場合は、その前にあるヘッダー・レコードをスキップして、フィールド名を含むそのレコードがファイルの先頭になるようにします。
ファイルの書式として「固定長」または「デリミタ付き」を選択します。
デリミタ付きファイルを作成するには、次のプロパティを指定します。
フィールド・デリミタ: フィールド・デリミタでは1つのフィールドの終了位置と別のフィールドの開始位置を示します。フィールド・デリミタは入力するか、リストから選択できます。リストには、一般的なフィールド・デリミタが表示されます。ただし囲み文字以外であれば、どのような文字でもデリミタとして入力できます。デフォルトはカンマ(,)です。
囲み(左および右): ファイルに囲み文字が含まれる場合は囲み文字をテキスト・ボックスに入力することも、リストから選択することもできます。リストには、一般的な囲み文字が表示されます。ただし入力する場合はどのような文字でも入力できます。囲みのデフォルトは左右いずれも二重引用符(")です。
作成するファイルに単一のレコード・タイプを含めるか複数のレコード・タイプを含めるかを指定します。ファイルに1つのタイプのレコードのみ含める必要がある場合は、「シングル・レコード」を選択します。
ファイルに複数のレコード・タイプを含める必要がある場合、「マルチ・レコード」を選択します。複数のレコード・タイプを使用して、複数のレコード・タイプを含むフラット・ファイルを作成します。作成するレコード・タイプごとに、「レコード・タイプ・ロケーション」 の下に値を指定し、次にそのタイプの値およびレコード名を指定します。
「レコード・タイプ・ロケーション」に有効なエントリは、ファイル・プロパティ・ページで選択したフィールド書式(「固定長」または「デリミタ付きフィールド」)に応じて異なります。たとえば、「デリミタ付きフィールド」を選択した場合は、レコード・タイプの開始位置と長さを指定します。固定長ファイルの場合は、フィールド位置を指定します。
フィールド・プロパティ・ページを使用して、各フィールドのプロパティを定義します。
フラット・ファイルはマッピングにフラット・ファイル・ソースとして直接使用するか、外部表を介して間接的に使用できるため、フィールド・プロパティ・ページには、SQL*LoaderプロパティとSQLプロパティの両方が表示されます。スクロール・バーを使用すると、右へスクロールしてすべてのプロパティを表示できます。
所定のデータ型に適用されないプロパティは非アクティブになります。たとえば、CHAR
の長さは編集できますが、精度とスケールは使用できません。アクティブになっていないプロパティはグレー表示されます。
ウィザードで最初に表示されるプロパティ・セットは、SQL*Loaderユーティリティ用のプロパティです。マッピングでソースとしてフラット・ファイルを直接使用する場合、SQL*Loaderおよびここで設定するプロパティが使用されます。SQL*Loaderプロパティには、「タイプ」、「開始」、「終了」、「長さ」、「精度」、「スケール」、「マスク」、「NULLIF」および「DEFAULTIF」があります。
デフォルトでは、これらのプロパティは、ソース・ファイルに表示されるとおりにウィザードに表示されます。SQL*Loaderでフィールドを処理する方法を指定するには、これらのプロパティを編集するか、デフォルトをそのまま使用します。
タイプ
SQL*Loaderでのフィールドのデータ型を記述します。ウィザードを使用すると、CHAR
、DATE
、DECIMAL
EXTERNAL
、FLOAT EXTERNAL
、INTEGER EXTERNAL
、ZONED
およびZONED EXTERNAL
など多くのデータ型をインポートできます。SQL*Loaderのフィールドおよびデータ型の詳細は、Oracle Databaseユーティリティを参照してください。現時点でサポートされているのは、移植可能なデータ型のみです。
開始
固定長ファイルで、フィールドの開始位置を示します。
終了
固定長ファイルで、フィールドの終了位置を示します。
長さ
デリミタ付きファイルの場合は、SQL*Loaderで使用するフィールドの最大長を指定します。
精度
データ型DECIMALおよびZONEDの精度を定義します。
スケール
データ型DECIMALおよびZONEDのスケールを定義します。
マスク
SQL*Loaderで使用するデフォルトの日付マスクはdd-mon-yyです。このデフォルトを上書きするには、ファイルを定義するときに有効な日付マスクを入力します。たとえば、入力データでSQL*LoaderのデフォルトではなくDD-Mon-YYYYという書式が使用されている場合は、実際の書式をマスクとして入力できます。
NULLIF
SQL*Loaderのデフォルト・アクションを上書きするには、フィールドにNULLIF条件を指定します。たとえば、文字フィールドの内容がすべて空白の場合に、空白を保存するのではなく、そのフィールドにNULLのマークを付けるようにSQL*Loaderに指示できます。このフィールドに有効な構文は、=BLANKS、='quoted string'、=X'ff'(16進数値を示す場合)および!= (「等しくない」論理の場合)です。
DEFAULTIF
SQL*Loaderのデフォルト・アクションを上書きするには、フィールドにDEFAULTIF条件を指定します。たとえば、数値またはDATE型のフィールドがすべて空白の場合、SQL*Loaderではレコード全体が拒否されます。このアクションを上書きにするには、「DEFAULT」プロパティに=BLANKSと入力します。SQL*Loaderは、この条件を評価するとき、数値フィールドにゼロを設定してレコードをロードします。このフィールドに有効な構文は、=BLANKS、='quoted string'、=X'ff'(16進数値を示す場合)、!=(「等しくない」論理の場合)です。
2番目に表示されるプロパティ・セットはSQLプロパティで、「SQLタイプ」、「SQL長」、「SQL精度」および「SQLスケール」があります。これらのプロパティによって、たとえば、フラット・ファイル内のフィールドをリレーショナル表の列に変換する方法を指定します。
ここで設定するSQLプロパティは、マッピング設計、検証および生成に次のような影響を与えます。
外部表: 1つのフラット・ファイル・レコード・タイプに基づいて外部表を作成する場合、列のプロパティは、フラット・ファイルに定義したSQLプロパティに基づきます。外部表の詳細は、「外部表の使用方法」を参照してください。
空のマッピング表へのデータの移入: マッピングで空のリレーショナル表にメタデータを移入すると、その表は、フラット・ファイルのソースに定義したSQLプロパティを継承します。
フラット・ファイル・ターゲット: マッピングのターゲットとしてフラット・ファイルを使用すると、そのターゲットはSQLプロパティを継承しません。かわりに、すべてのフィールドはデフォルトのSQL*Loaderデータ型を継承します。フラット・ファイル演算子をターゲットとして使用する方法の詳細は、「フラット・ファイル演算子」を参照してください。
SQLタイプ
Warehouse Builderは、CHAR
、DATE
、FLOAT
、BLOB
など多くのSQLデータ型をサポートしています。
ウィザードでは、設定したSQL*Loaderプロパティに基づいてSQLタイプのデフォルト値が割り当てられます。デフォルトのSQLタイプを使用すると、後でSQL*Loaderプロパティを変更した場合にSQLタイプが更新されます。ただし、リストから新しいSQLタイプを選択してSQLタイプを上書きすると、フラット・ファイルのSQL*Loaderデータ型とは無関係になります。
SQL長
このプロパティは、SQL列の長さを定義します。
SQL精度
たとえば、SQLタイプがNUMBER
またはFLOAT
の場合、このプロパティは、SQL列の精度を定義します。
SQLスケール
既存のフラット・ファイルをソースとして使用する場合、これらのフラット・ファイルからメタデータをインポートしてからサンプリングできます。インポート・メタデータ・ウィザードを使用して、フラット・ファイルからメタデータをインポートします。このメタデータをファイル・モジュールにインポートする必要があります。
フラット・ファイル定義をインポートする手順は、次のとおりです。
インポートするファイルに対するネットワークの接続性を確立します。
データファイルに直接アクセスする場合、およびクライアントとデータファイルが異なるタイプのオペレーティング・システムに存在している場合は、NFSまたはその他のネットワーク・プロトコルを介して必要な接続性を確立するように、システム管理者に依頼してください。
クライアントとデータファイルがWindowsオペレーティング・システムに存在している場合は、クライアント・コンピュータでアクセスできるドライブにデータファイルを格納します。
フラット・ファイル・モジュールを作成して、フラット・ファイル定義をインポートします。
ファイルのインポート元となる、ファイル・システム内の各フォルダのモジュールを作成します。
フラット・ファイル・モジュールを作成する場合、このモジュールに対応するロケーションは、メタデータのインポート元のファイル・システムのフォルダです。モジュールの作成ウィザードの接続情報ページを使用してソース・メタデータが含まれるフォルダを指定します。
フラット・ファイル・ロケーションには、指定したフォルダのサブフォルダはないことに注意してください。
フラット・ファイル・モジュールを右クリックし、「インポート」を選択します。
インポート・メタデータ・ウィザードが表示されます。
フィルタ情報ページで、次のオプションのいずれかを選択してファイル名をフィルタします。
すべてのデータファイル: このオプションでは、フラット・ファイル・モジュールに指定したディレクトリで使用できるデータファイルが、すべて戻されます。
次のパターンに一致するデータファイル: このオプションを使用すると、入力するパターンに一致するデータファイルのみが選択されます。たとえば、このオプションを選択して(*.dat)と入力すると、ファイル拡張子が.datのファイルのみが、ウィザードの次のページに表示されます。フィルタ文字列の一部として%を入力すると、複数の文字と一致するワイルド・カードと解釈されます。フィルタ文字列の一部に「_」を入力すると、1つの文字と一致するワイルド・カードと解釈されます。
オブジェクト選択ページで、右にある「選択したオブジェクト」セクションの左の「使用可能なオブジェクト」からインポートしたファイルの名前を移動します。
フラット・ファイルのインバウンド同期化は許可されていないため、他のオブジェクトが再インポートされた場合とは異なり、使用可能なオブジェクトは太字では表示されません。フラット・ファイルを再インポートする場合は、そのフラット・ファイルのオブジェクトを必ず再サンプリングする必要があります。
サマリーとインポート・ページで、選択したフラット・ファイルのメタデータがワークスペースで使用可能であることを確認します。メタデータが存在しない場合は、インポートを完了できません。
「ステータス」フィールドに赤いXマークがある場合、ワークスペースにメタデータはありません。そのようなすべてのファイルに対して、ワークスペースで一致する形式のファイルを選択するか、ファイルをサンプリングします。
「同一」フィールドで、一致する形式のファイルを選択します。
ファイルをサンプリングするには、「サンプル」をクリックします。フラット・ファイル・サンプル・ウィザードが起動します。フラット・ファイル・サンプル・ウィザードを使用して、フラット・ファイルのサンプルを表示し、レコードの構成およびファイルのプロパティを定義できます。文字列およびASCIIなどの共通のフラット・ファイルの書式をサンプリングおよび定義できます。
複雑なレコード構造のファイルの場合、フラット・ファイル・サンプル・ウィザードがデータのサンプリングに適していない場合があります。このような場合は、「ワークスペースへの既存バイナリ・ファイルの追加」を参照してください。
インポートするすべてのファイルのメタデータ情報を入力した後、「終了」をクリックします。
このウィザードを使用して、ファイルの定義を作成し、フラット・ファイル・モジュールに定義を格納し、プロジェクト・エクスプローラのフラット・ファイル・モジュールの下にファイル名を挿入します。
既存のフラット・ファイルからデータをサンプリングするためにインポート・メタデータ・ウィザードを使用するたびに、フラット・ファイル・サンプル・ウィザードを起動するオプションを選択できます。
フラット・ファイル・サンプル・ウィザードは、フラット・ファイルに基づいてメタデータを定義する際の補助ツールとして使用します。
このウィザードでは、デリミタ付きの固定長ファイルはサンプリングされますが、固定レコード・フォーマットのマルチ・バイト文字ファイルはサンプリングされません。固定レコード・フォーマットや他の複合レコード・フォーマット(バイナリ・ファイルなど)の場合は、「フラット・ファイルの作成ウィザードの使用方法」を参照してください。
フラット・ファイル・サンプル・ウィザードが完了すると、ワークスペースにメタデータが格納され、「既存のフラット・ファイルに基づくソースまたはターゲットの作成」の説明に従ってマッピングのソースまたはターゲットとしてフラット・ファイルを使用できるようになります。
名前ページを使用して、サンプリングするフラット・ファイルを記述します。
名前: この名前でワークスペース内のファイルを一意に識別します。デフォルトでは、ソース・ファイル名に基づき、無効な文字をアンダースコアで置き換えて名前が作成されます。たとえば、ファイル名がmyfile.datであれば、ワークスペース名myfile_datが割り当てられます。
ファイルの名前を変更する場合は、名前にスペースや記号は使用しないでください。アンダースコアは使用できます。大文字と小文字を使用できます。名前の先頭に数字を使用しないでください。予約語は使用しないでください。予約語の一覧は、Warehouse Builderオンライン・ヘルプの予約語に関する項を参照してください。
説明: ファイルの説明(オプション)を入力できます。
キャラクタ・セット: キャラクタ・セットでは、データベース・オブジェクトとファイルで表現できる言語を決定します。デフォルトのグローバリゼーション・サポートまたはNational Language Support(NLS)キャラクタ・セットは、Warehouse Builderをホスティングしているコンピュータに定義されたキャラクタ・セットと一致します。このキャラクタ・セットがソース・ファイルのキャラクタ・セットと異なる場合は、データのサンプルが判読不可能になることがあります。データ・サンプルをソース固有のキャラクタ・セットで表示するには、リストからそのキャラクタ・セットを選択します。NLSキャラクタ・セットの詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください。
サンプリングする文字数: データファイルからサンプリングする文字数をウィザードに対して指定できます。デフォルトでは、最初の10,000文字がサンプリングされます。このフィールドに最適な値を決定するには、「例: レコード・タイプが複数あるフラット・ファイル」を参照してください。
ファイルの設定情報の入力が完了した後で、「次へ」をクリックしてウィザードを続行します。
サンプリングするファイルのレコード編成方法を指定するには、レコード編成ページを使用します。
ファイル内の各レコードの長さを決定する方法を指定するには、次の2つのオプションのいずれかを選択します。
レコード・デリミタ: このオプションは、各レコードの最後がデリミタで指定される場合に選択してください。次に、レコード・デリミタを指定します。デフォルトのレコード・デリミタである改行(<CR>)を受け入れるか、新しい値を入力できます。
レコード長(文字数): このオプションは、ファイル内の各レコードの長さが同一の場合に選択してください。次に、各レコードの文字数を指定します。マルチバイト・キャラクタのファイルでは、マルチバイト・キャラクタを1文字として計算します。
フラット・ファイル・サンプル・ウィザードでは、複数の物理レコードに対応する論理レコードで構成されたファイルをサンプリングできます。ファイルに論理レコードが含まれている場合は、「論理レコードを含むファイル」をクリックします。次に、ファイルを記述するオプションを1つ選択します。
下部のパネルの論理レコードの表示が更新され、選択内容が反映されます。デフォルトでは、1論理レコード当たり1物理レコードが選択されています。
論理レコード情報の入力が完了した後で、「次へ」をクリックしてウィザードを続行します。
1論理レコード当たりの物理レコード数: データファイルには、論理レコードごとに固定数の物理レコードが含まれます。
PHYSICAL_RECORD1 PHYSICAL_RECORD2 PHYSICAL_RECORD3 PHYSICAL_RECORD4
前述の例で、論理レコード当たりの物理レコード数が2の場合は、PHYSICAL_RECORD1
とPHYSICAL_RECORD2
が1つの論理レコードを形成し、PHYSICAL_RECORD3
とPHYSICAL_RECORD4
が2番目の論理レコードを形成します。
現行の物理レコードの終了文字: データファイルには、可変数の物理レコードが含まれます。物理レコードの末尾には、そのレコードが次の物理レコードと関連することを表す継続文字が付加されます。
次の例では、継続文字はレコード末尾のパーセント記号(%)です。
PHYSICAL_RECORD1% PHYSICAL_RECORD2 end log rec 1 PHYSICAL_RECORD3% PHYSICAL_RECORD4 end log rec 2
次の物理レコードの開始文字: データファイルには、可変数の物理レコードが含まれます。物理レコードの先頭には、そのレコードが前の物理レコードと関連することを表す継続文字が付加されます。
次の例は、レコードの先頭に継続文字がある2つの論理レコードを示しています。
PHYSICAL_RECORD1 %PHYSICAL_RECORD2 end log rec1 PHYSICAL_RECORD3 %PHYSICAL_RECORD4 end log rec 2
この方法を使用すると、3つ以上のレコードを結合できます。次の例では、レコード先頭の継続文字を使用した、1論理レコード当たり4つの物理レコードを示しています。
PHYSICAL_RECORD1 %PHYSICAL_RECORD2 %PHYSICAL_RECORD25 %PHYSICAL_RECORD26 (end log record 1) PHYSICAL_RECORD3 %PHYSICAL_RECORD4 %PHYSICAL_RECORD45 %PHYSICAL_RECORD46 (end log record 2)
ファイル形式ページを使用して、ファイル用に「固定長」形式または「デリミタ付き」形式を選択します。フラット・ファイル・サンプル・ウィザードでは、固定レコード形式のマルチバイト文字ファイルはサンプリングされません。かわりに、「フラット・ファイルの作成ウィザードの使用方法」を考慮してください。
ファイル形式を選択すると、ウィザードのページの下部に表示されるサンプルが更新されます。サンプル・データ内を移動するには、スクロール・バーを使用します。
デリミタ付きファイルの場合は、次のプロパティを指定します。
フィールド・デリミタ: フィールド・デリミタでは1つのフィールドの終了位置と別のフィールドの開始位置を示します。フィールド・デリミタは入力するか、リストから選択できます。リストには、一般的なフィールド・デリミタが表示されます。ただし囲み文字以外であれば、どのような文字でもデリミタとして入力できます。デフォルトはカンマ(,)です。
囲み(左および右): ファイルに囲み文字が含まれる場合は囲み文字をテキスト・ボックスに入力することも、リストから選択することもできます。リストには、一般的な囲み文字が表示されます。ただし入力する場合はどのような文字でも入力できます。囲みのデフォルトは左右いずれも二重引用符(")です。
ファイル・レイアウト・ページを使用してスキップする行数を指定し、シングル・レコード・タイプまたはマルチ・レコード・タイプを選択します。
「スキップする行数」でスキップするレコードの数を指定します。この操作は、不要なヘッダー情報のスキップに役立ちます。レコードの1つにフィールド名が含まれている場合は、その前にあるヘッダー・レコードをスキップして、フィールド名を含むそのレコードがファイルの先頭になるようにします。シングル・レコードのファイル・タイプを定義している場合は、後のフラット・ファイル・サンプル・ウィザード: フィールド・プロパティ・ページで、そのレコードをフィールド名として使用するように指示できます。
ファイルに含まれるのがシングル・レコード・タイプとマルチ・レコード・タイプのいずれであるかを指定します。
ファイルに1つのレコード・タイプのみが含まれる場合は、「シングル」を選択します。
ファイルに複数のレコード・タイプが含まれる場合は、「マルチ」を選択します。後からこのウィザードで、ファイルをスキャンしてレコード・タイプを検索することができます。マルチ・レコード・タイプの詳細は、「レコード・タイプの選択(マルチ・レコード・タイプのファイルのみ)」を参照してください。
ウィザードのレコード・タイプ・ページを使用して、フラット・ファイルのスキャンによるレコード・タイプの検索、レコード・タイプの追加と削除、およびレコード・タイプへのタイプ値の割当てを行います。
注意: この手順は、シングル・レコード・タイプのファイルでは不要です。データ・ファイルがシングル・レコード・タイプで、固定長のファイル・フォーマットの場合は、「フィールド長の指定(固定長ファイルのみ)」に進んでください。データ・ファイルがシングル・レコード・タイプで、デリミタ付きファイル・フォーマットの場合は、「フィールド・プロパティの指定」に進んでください。 |
レコード・タイプが複数あるファイルでは、フィールドの1つで、1つのレコード・タイプが次のレコード・タイプと区別されます。フラット・ファイル・サンプル・ウィザードを使用する場合、レコード・タイプ値について各レコードの指定したフィールドをスキャンするように指示します。
図8-4は、EとPという2つのレコード・タイプを持つカンマ区切りのファイルの例を示しています。この場合、ウィザードで最初のフィールドをスキャンするように指示します。ウィザードではEおよびPがタイプ値として返されます。
このウィザードを使用して、レコード・タイプが複数あるフラット・ファイルをサンプリングする場合は、名前ページで指定したサンプルのサイズが、各レコード・タイプを1つ以上含むことのできる大きさになるようにしてください。デフォルトは100,000文字です。
サンプリングは開始すると取消しができないため、最適なパフォーマンスが得られる適度な文字数を選択してください。適度な文字数内にレコード・タイプがすべて表示できない場合は、マスター・ファイルの異なる部分から行を選択して仮のサンプル・ファイルを作成し、データ・セットの代理とすることができます。データの内容が不明の場合は、ファイル全体をサンプリングすることもできます。データの内容を把握している場合は、代理のサンプルをスキャンしてから、新しいレコード・タイプを手動で追加できます。
デリミタ付きフラット・ファイルに複数の異なるタイプのレコードが含まれている場合は、フラット・ファイル・サンプル・ウィザードのスキャン機能を使用してレコード・タイプを検索し、ラベルを付けることができます。
デリミタ付きファイルのレコード・タイプ・ページを完了する手順は、次のとおりです。
ファイル内のレコード・タイプを識別する単一フィールドを選択します。
ウィザード・ページの下部パネルにサンプルのすべてのフィールドが表示されます。「サンプル」ボックスからフィールドを選択するか、「フィールド位置」にサンプルに表示される位置を入力できます。特に指定しなければ、ファイル内の第1フィールドにデフォルト設定されます。
ファイル内でフィールドがスキャンされ、タイプ値が表示されます。各タイプ値にデフォルトのレコード名(RECORD1、RECORD2など)が割り当てられます。
レコード名は編集できます。
レコード名をクリックして変更するか、リストから別のレコード名を選択します。レコード名を複数のレコード・タイプ値に関連付けることができます。また、「新規」および「削除」ボタンを使用してタイプ値を追加または削除することもできます。
「次へ」をクリックしてウィザードを続行します。
固定長のフラット・ファイルに複数の異なるタイプのレコードが含まれている場合は、フラット・ファイル・サンプル・ウィザードのスキャン機能を使用してレコード・タイプを検索し、各レコード・タイプにタイプ値を割り当てることができます。
固定長ファイルのレコード・タイプ・ページを完了する手順は、次のとおりです。
ファイル内のレコード・タイプを識別する単一フィールドを指定します。「開始位置」および「終了位置」に値を入力します。第1フィールドに基づいてレコードをスキャンする場合は、「開始位置」に0(ゼロ)を入力します。
ウィザード・ページの下部パネルに、ファイル・サンプル内で選択したフィールドが表示され、ルーラーに赤いチェックマークが表示されます。
「スキャン」をクリックします。
ファイルのフィールドがスキャンされ、タイプ値が表示されます。各タイプ値にデフォルトのレコード名(RECORD1、RECORD2など)が割り当てられます。
レコード名は編集できます。
レコード名をクリックして変更するか、リストから別のレコード名を選択します。レコード名を複数のレコード・タイプ値に関連付けることができます。また、「新規」および「削除」ボタンを使用してタイプ値を追加または削除することもできます。
「次へ」をクリックしてウィザードを続行します。
フラット・ファイル・サンプル・ウィザードを使用して固定長のフラット・ファイルを定義する場合は、ファイルの各フィールドの長さも定義する必要があります。
フィールド長は、フィールド長を入力するか、ルーラーを使用して定義できます。
各フィールドの長さがわかっている場合は、「フィールド長」にフィールド長を入力します。それぞれの長さはカンマで区切ります。ウィザード・ページの下部に、サンプルの変更内容が表示されます。
ルーラーを使用するには、ルーラー上の任意の数字かハッシュ・マークをクリックします。ルーラーの上に赤いティックマークが表示され、境界を示す赤い線が表示されます。指定を間違えた場合は、マーカーをダブルクリックして削除するか、別の位置にマーカーを移動します。ルーラーを使用して、ファイル内の各フィールドにマーカーを作成します。
ルーラーを使用してフィールド長を指定する場合は、このチェックマーカーによって、各フィールドの開始と終了の境界が示されます。この情報から、各フィールドの占める位置が決定されます。たとえば、位置6、7および8を占める、3文字からなるフィールドは、内部的には開始と終了の値が「5,8」であると識別されます。
フラット・ファイル・サンプル・ウィザードのフィールド・プロパティ・ページを使用して、各フィールドのプロパティを定義します。ウィザードにより、第1フィールドには'C1'、第2フィールドには'C2'というように各フィールドに名前が割り当てられます。フィールド名を変更するには、そのフィールドをクリックして新規の名前を入力します。
単一レコード・ファイル・タイプの場合は、ウィザードでファイルの最初のレコードをフィールド名として使用するように指定できます。そのためには、「フィールド名として最初のレコードを使用」チェック・ボックスを選択します。このオプションを選択すると、すべてのフィールドのデータ型属性がCHAR
にデフォルト設定されます。
フラット・ファイルはマッピングにフラット・ファイル・ソースとして直接使用するか、外部表を介して間接的に使用できるため、フィールド・プロパティ・ページには、SQL*LoaderプロパティとSQLプロパティの両方が表示されます。スクロール・バーを使用すると、右へスクロールしてすべてのプロパティを表示できます。
所定のデータ型に適用されないプロパティは非アクティブになります。たとえば、CHAR
の長さは編集できますが、精度とスケールは使用できません。アクティブになっていないプロパティはグレー表示されます。
注意: フィールド・プロパティ・ページでの作業を完了した後に、サマリー・ページで選択内容を確認し、「終了」を選択します。フラット・ファイル・サンプル・ウィザードから「フラット・ファイルからの定義のインポート」で説明するインポート・メタデータ・ウィザードに戻ります。サンプリングするファイルをさらに選択したり、「終了」を選択してインポートを開始できます。 |
ウィザードで最初に表示されるプロパティ・セットは、SQL*Loaderユーティリティ用のプロパティです。マッピングでソースとしてフラット・ファイルを直接使用する場合、SQL*Loaderおよびここで設定するプロパティが使用されます。SQL*Loaderプロパティには、「タイプ」、「開始」、「終了」、「長さ」、「精度」、「スケール」、「マスク」、「NULLIF」および「DEFAULTIF」があります。
デフォルトでは、これらのプロパティは、ソース・ファイルに表示されるとおりにウィザードに表示されます。SQL*Loaderでフィールドを処理する方法を指定するには、これらのプロパティを編集するか、デフォルトをそのまま使用します。
タイプ
SQL*Loaderでのフィールドのデータ型を記述します。ウィザードを使用すると、CHAR
、DATE
、DECIMAL EXTERNAL
、FLOAT EXTERNAL
、INTEGER EXTERNAL
、ZONED
およびZONED EXTERNAL
など多くのデータ型をインポートできます。SQL*Loaderのフィールドおよびデータ型の詳細は、「Oracle Databaseユーティリティ」を参照してください。現時点でサポートされているのは、移植可能なデータ型のみです。
開始
固定長ファイルで、フィールドの開始位置を示します。
終了
固定長ファイルで、フィールドの終了位置を示します。
長さ
SQL*Loaderで使用するフィールドの長さを指定します。デリミタ付きファイルでは、フィールド長に値は移入されませんが、フィールドの最大長が判明している場合には手動で編集できます。
精度
データ型DECIMALおよびZONEDの精度を定義します。
スケール
データ型DECIMALおよびZONEDのスケールを定義します。
マスク
SQL*Loaderで使用するデフォルトの日付マスクはdd-mon-yyです。このデフォルトを上書きするには、ファイルを定義するときに有効な日付マスクを入力します。たとえば、入力データでSQL*LoaderのデフォルトではなくDD-Mon-YYYYという書式が使用されている場合は、実際の書式をマスクとして入力できます。
NULLIF
SQL*Loaderのデフォルト・アクションを上書きするには、フィールドにNULLIF条件を指定します。たとえば、文字フィールドの内容がすべて空白の場合に、空白を保存するのではなく、そのフィールドにNULLのマークを付けるようにSQL*Loaderに指示できます。このフィールドに有効な構文は、=BLANKS、='quoted string'、=X'ff'(16進数値を示す場合)および!= (「等しくない」論理の場合)です。
DEFAULTIF
SQL*Loaderのデフォルト・アクションを上書きするには、フィールドにDEFAULTIF条件を指定します。たとえば、数値またはDATE型のフィールドがすべて空白の場合、SQL*Loaderではレコード全体が拒否されます。このアクションを上書きにするには、「DEFAULT」プロパティに=BLANKSと入力します。SQL*Loaderは、この条件を評価するとき、数値フィールドにゼロを設定してレコードをロードします。このフィールドに有効な構文は、=BLANKS、='quoted string'、=X'ff'(16進数値を示す場合)、!=(「等しくない」論理の場合)です。
2番目に表示されるプロパティ・セットはSQLプロパティで、「SQLタイプ」、「SQL長」、「SQL精度」および「SQLスケール」があります。これらのプロパティによって、たとえば、フラット・ファイル内のフィールドをリレーショナル表の列に変換する方法を指定します。
ここで設定するSQLプロパティは、マッピング設計、検証および生成に次のような影響を与えます。
外部表: 1つのフラット・ファイル・レコード・タイプに基づいて外部表を作成する場合、列のプロパティは、フラット・ファイルに定義したSQLプロパティに基づきます。外部表の詳細は、「外部表の使用方法」を参照してください。
空のマッピング表へのデータの移入: マッピングで空のリレーショナル表にメタデータを移入すると、その表は、フラット・ファイルのソースに定義したSQLプロパティを継承します。
フラット・ファイル・ターゲット: マッピングのターゲットとしてフラット・ファイルを使用すると、そのターゲットはSQLプロパティを継承しません。かわりに、すべてのフィールドはデフォルトのSQL*Loaderデータ型を継承します。フラット・ファイル演算子をターゲットとして使用する方法の詳細は、「フラット・ファイル演算子」を参照してください。
SQLタイプ
Warehouse Builderは、CHAR
、DATE
、FLOAT
、BLOB
など多くのSQLデータ型をサポートしています。
ウィザードでは、設定したSQL*Loaderプロパティに基づいてSQLタイプのデフォルト値が割り当てられます。デフォルトのSQLタイプを使用すると、後でSQL*Loaderプロパティを変更した場合にデフォルト値が更新されます。ただし、リストから新しいSQLタイプを選択してSQLタイプを上書きすると、フラット・ファイルのSQL*Loaderデータ型とは無関係になります。
SQL長
このプロパティは、SQL列の長さを定義します。
SQL精度
たとえば、SQLタイプがNUMBER
またはFLOAT
の場合、このプロパティは、SQL列の精度を定義します。
SQLスケール
ファイル形式の定義を更新するには、プロパティ・シートを編集します。
ファイル定義を更新する手順は、次のとおりです。
プロジェクト・エクスプローラで、ファイル定義を選択します。
ファイル名を右クリックして「プロパティ」を選択します。
フラット・ファイルのプロパティ・シートに、次のタブが表示されます。
「名前」タブ: このタブを使用して、ファイルの名前と説明を編集します。
「一般」タブ: このタブを使用して、物理レコード・サイズ、1論理レコード当たりの物理レコード数、デリミタ文字と囲み文字などのグローバル・プロパティを変更します。
「レコード」タブ: このタブは、レコード・タイプが複数あるフラット・ファイルにのみ使用できます。このタブを使用して、フィールドの再定義やレコード・タイプの追加、削除および編集を行います。
「構造」タブ: このタブを使用して、フィールドのレベル属性、SQL*LoaderプロパティおよびSQLプロパティを編集します。
このタブを使用して、ファイルの名前、デフォルトの物理ファイル名、説明およびキャラクタ・セットを編集します。
このタブを使用して、物理レコード・サイズ、1論理レコード当たりの物理レコード数、デリミタ文字および囲み文字などのグローバル・プロパティを変更します。
デリミタ付きレコードの場合、「一般」タブには次のフィールドがあります。
レコード・デリミタ: このオプションは、各レコードの最後がデリミタで指定される場合に選択してください。次に、レコード・デリミタを指定します。デフォルトのレコード・デリミタである改行(<CR>)を受け入れるか、新しい値を入力できます。
レコード長(文字数): このオプションは、ファイル内の各レコードの長さが同一の場合に選択してください。次に、各レコードの文字数を指定します。マルチバイト・キャラクタのファイルでは、マルチバイト・キャラクタを1文字として計算します。
ファイルに論理レコードが含まれている場合は、「論理レコードを含むファイル」をクリックします。次に、ファイルを定義するためのオプションを、次の中から1つ選択します。
1論理レコード当たりの物理レコード数: データファイルには、論理レコードごとに固定数の物理レコードが含まれます。
現行の物理レコードの終了文字: データファイルには、可変数の物理レコードが含まれます。物理レコードの末尾には、そのレコードが次の物理レコードと関連することを表す継続文字が付加されます。
次の物理レコードの開始文字: データファイルには、可変数の物理レコードが含まれます。物理レコードの先頭には、そのレコードが前の物理レコードと関連することを表す継続文字が付加されます。
ファイルに複数のレコード・タイプが含まれている場合は、「レコード名」フィールドから各レコード・タイプを選択できます。Warehouse Builderにより「レコード」シートが表示され、レコード・タイプ情報を編集できます。
レコード・タイプは次の列番号にあります: このフィールドには、レコード・タイプのインジケータを含む列が表示されます。この値は変更可能です。たとえば、2つのレコード・タイプを持つフラット・ファイルで、次のリストに示すように、3番目の列の最初の文字で各レコード・タイプが区別される場合、このフィールドの値は3になります。
レコード・タイプ1: 2002 0115
E
4564564
レコード・タイプ2: 2003 1231
D
659871 Q HKLIH
レコード・タイプの値: この表には各レコード・タイプ、レコード・タイプを他のレコード・タイプと区別する値、およびレコード・タイプに付けた名前が表示されます。表8-1では、前述の2つのサンプル・レコードについて、レコード・タイプの値の例を示します。
新規レコード・タイプを追加するには、「新規」をクリックして、タイプ値、およびレコード・タイプを説明するレコード名を入力します。
レコード・タイプを削除するには、削除する各レコード・タイプの左側にあるチェック・ボックスを選択して、「削除」をクリックします。
ターゲット・システムのソースの特定と定義が終わったら、ターゲット・スキーマをモデル化する準備は完了です。
「構造」タブを使用して、フィールド名、データ型、マスク、SQL*LoaderプロパティおよびSQLプロパティを編集します。フィールドを追加または削除できます。また、フィールド・マスク、NULLIF条件またはDEFAULTIF条件も追加できます。
ファイルに複数のレコード・タイプが含まれている場合は、「レコード名」フィールドから各レコード・タイプを選択できます。Warehouse Builderにより「レコード」シートが表示され、レコード・タイプ情報を編集できます。
所定のデータ型に適用されないプロパティは非アクティブになります。たとえば、CHAR
の長さは編集できますが、精度とスケールは使用できません。
外部表は、Oracle Database(バージョン9i以上)内のデータベース・オブジェクトです。他のデータベース型または9iリリースより前のOracle Databaseでは外部表を使用できません。
外部表は、フラット・ファイルのデータをリレーショナル形式で表現した表です。外部表は読取り専用の表で、通常のソース表と同様に動作します。外部表を作成および定義すると、外部表のメタデータがワークスペースに保存されます。これらの外部表定義をマッピングで使用すると、フラット・ファイル・ソースからターゲットにデータを移動して変換する方法を設計できます。
次の各項では、外部表について説明します。
前提作業
作成する各外部表は、既存のフラット・ファイル内の1つのレコード・タイプに対応します。新しい外部表定義を作成する前に、「ワークスペースへのASCIIファイルのインポート」および「ワークスペースの既存バイナリ・ファイルの追加」で説明するいずれかの方法によって、ワークスペース内にファイルを定義します。
新しい外部表定義を作成する手順は、次のとおりです。
プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを開きます。
外部表を作成するターゲット・モジュールを開きます。
「外部表」ノードを右クリックして「新規」を選択します。
名前ページを使用して、外部表の名前と説明(オプション)を定義します。「名前」フィールドに名前を入力します。物理モードでは、名前は有効な1から30文字で入力する必要があります。空白を入れることはできません。論理モードでは、一意の名前を4000文字以内で入力できます。外部表の名前は表内で一意である必要があります。空白を入れることができます。
「説明」フィールドを使用して、外部表の説明(オプション)を入力します。
ウィザードにより、ファイルの選択ページが表示されます。ウィザードには、ワークスペース内の使用可能なフラット・ファイルが一覧表示されます。外部表の基になるファイルを選択します。長いファイル・リストから検索するには、ファイル名の最初の数文字を入力して「検索」をクリックします。
ファイルが見つからない場合は、「フラット・ファイルについて」の説明に従ってファイルのメタデータをインポートまたは定義したことを確認してください。
レコード・タイプが複数あるファイルを選択した場合は、ファイルの選択ページの下部で、レコード・タイプ名も選択する必要があります。外部表には1つのレコード・タイプしか表示されません。
ロケーションは、フラット・ファイルに関連付けられているロケーションを一覧表示したリストから選択できます。ロケーションは指定しなくてもかまいません。ウィザードでロケーションを指定しない場合、後から外部表のプロパティ・シートでロケーションを指定できます。
ヒント: 外部表を配布するには、フラット・ファイルのロケーションとOracleモジュールのロケーションの間のコネクタを配布する必要があります(このコネクタは、外部表作成時に自動的に作成されます)。 |
Warehouse Builderでは、外部表に関連付けられているファイルに対するメタデータの変更を反映して、外部表定義を更新できます。そのためには、外部表とソース・ファイルを同期化します。
外部表定義とファイル内のレコードを同期化する手順は、次のとおりです。
プロジェクト・エクスプローラで、同期化する外部表を右クリックし、「同期化」を選択します。
「調整」ダイアログ・ボックスが表示されます。
「同期化するオブジェクトを選択してください」リストを使用して、外部表を同期化するフラット・ファイルを指定します。
デフォルトでは、外部表の作成に使用されたフラット・ファイルがこのリストに表示されます。リストを開いて、フラット・ファイル・モジュールおよびモジュールに含まれるフラット・ファイルのリストを確認します。
「拡張」をクリックします。
「拡張」ダイアログ・ボックスが表示されます。
「一致方針」リストを使用して、一致する項目の検索方法、およびフラット・ファイルの情報で外部表を更新する方法を指定します。一致方針のオプションは次のとおりです。
MATCH_BY_OBJECT_ID: この方針では、外部表列参照のフィールドIDが、フラット・ファイル内のフィールドIDと比較されます。
MATCH_BY_OBJECT_NAME: この方針では、外部表内の物理名が、フラット・ファイル内の物理名と比較されます。
MATCH_BY_OBJECT_POSITION: この方針では、物理名やIDに関係なく、位置によって項目が照合されます。外部表の最初の属性はファイル内の最初のレコードによって調整され、2番目の属性はファイル内の2番目のレコードによって調整されます。外部表と新しいレコードを調整する場合は、この方針を使用します。
「同期化方針」リストを使用して、既存の外部表定義と指定したレコードとの間のメタデータの差異を処理する方法を指定します。
マージ: 既存の外部表定義のメタデータと指定したレコードのメタデータが結合されます。
置換: 外部表定義のメタデータと指定したレコードのメタデータが一致しない場合は、外部表定義のメタデータが削除されます。調整後の外部表には、ファイル・レコードのメタデータに一致するメタデータが含まれます。
「OK」をクリックします。
「拡張」ダイアログ・ボックスを閉じると、「調整」ダイアログ・ボックスに戻ります。
「OK」をクリックして、外部表定義の同期化を完了します。
外部表エディタを使用して外部表定義を編集します。エディタを開くには、プロジェクト・エクスプローラで外部表の名前を右クリックして「エディタを開く」を選択します。「外部表の編集」ダイアログ・ボックスが表示されます。編集できるタブとプロパティは、ワークスペースにおける外部表の定義内容に応じて異なります。
外部表プロパティ・ウィンドウには次のタブが表示されます。
「アクセス・パラメータ」タブ(特定の条件下でのみ表示)
外部表の名前を変更するには、「名前」タブを使用します。表の名前を変更するときと同じルールが外部表にも適用されます。詳細は、「データ・オブジェクトのネーミング規則」を参照してください。
列を追加または編集するには、「列」タブを使用します。表に列を追加するときと同じルールが外部表にも適用されます。詳細は、「表定義の編集」を参照してください。
外部表のメタデータを提供するフラット・ファイルの名前を表示するには、「ファイル」タブを使用します。ソース・フラット・ファイルに複数のレコード・タイプがある場合、「ファイル」タブには外部表に関連付けられている「レコード名」も表示されます。この関係を更新するか、別のファイルとレコードに変更するには、外部表を調整します。詳細は、「外部表の定義とファイル内のレコードとの同期化」を参照してください。
「ファイル」タブは次の条件で表示されます。
新規外部表ウィザードを使用して外部表を作成し、ファイル名を指定した場合。
新規外部表ウィザードではファイル名を指定していないが、外部表の定義をファイルおよびレコードと調整した場合。
フラット・ファイルのロケーションを表示または変更するには、「ロケーション」タブを使用します。使用可能なロケーションが「ロケーション」リストに表示されます。このリストからロケーションを選択します。
外部表のデータ・ルールを定義するには、「データ・ルール」タブを使用します。データ・ルールの詳細は、「データ・ルールの使用」を参照してください。
アクセス・パラメータでは、フラット・ファイルを読み取る方法を定義します。外部表エディタに、「ファイル」タブのかわりに「アクセス・パラメータ」タブが表示される場合もあります。
アクセス・パラメータのタブは次の条件で表示されます。
外部表を別のワークスペースからインポートした場合。この場合は、アクセス・パラメータの表示と編集ができます。
外部表をOracleデータベースに作成し、その定義をインポートした場合。この場合は、アクセス・パラメータの表示と編集ができます。
外部表の作成ウィザードを使用して外部表を作成し、参照ファイルを指定しなかった場合。アクセス・パラメータは空になります。外部表を生成する前に、外部表の定義をフラット・ファイル・レコードと調整するか、プロパティ・シートにアクセス・パラメータを手動で入力する必要があります。
アクセス・パラメータにより、ソース・データファイル内のフィールドを列として、外部表でどのように表現するかが記述されます。たとえば、INTEGER(2)データ型のフィールドemp_id
がデータファイルに含まれている場合、アクセス・パラメータで、そのフィールドを外部表内の文字列の列に変換するように指定できます。
外部表の生成方法と配布方法に影響を及ぼすアクセス・パラメータは変更できますが、変更しないことをお薦めします。変更内容は検証されません。アクセス・パラメータ句の詳細は、Oracle Databaseユーティリティを参照してください。
注意: 外部表をワークスペースにインポートしたり、外部表のアクセス・パラメータを手動で定義する場合、外部表の一部の構成プロパティは、外部表プロパティ・ウィンドウの「アクセス・パラメータ」タブの設定によって無効になります。 |
外部表の物理プロパティを構成する手順は、次のとおりです。
プロジェクト・エクスプローラから外部表を選択します。
「編集」メニューから「構成」を選択します。ツールバーの「構成」アイコンをクリックすることもできます。
構成プロパティ・ウィンドウが表示されます。
プロパティを構成するには、空白部分をクリックしてリストから選択します。
外部表をワークスペースにインポートしたり、ソース・ファイルを指定せずに外部表を作成した場合は、これらのプロパティを構成しないでください。アクセス指定のプロパティは、外部表プロパティ・ウィンドウの「アクセス・パラメータ」タブの設定によって無効になります。
「アクセス指定」では、Warehouse BuilderがSQL*Loader経由で外部表をロードする際に使用する次のファイルの名前とロケーションを指定できます。
不正なファイル: 不正なファイルの名前とロケーションを指定すると、エラーが原因でロードされなかったすべてのレコードをこのファイルに書き込むようOracleデータベースに指示することになります。たとえば、不正なファイルに書き込まれるレコードには、フィールドを外部表の列に変換する際に、データ型エラーが原因でロードされなかったレコードなどがあります。すでに存在する不正なファイルを指定すると、そのファイルは上書きされます。
廃棄ファイル: 廃棄ファイルの名前とロケーションを指定すると、ファイルに設定されたSQL*Loaderのロード条件に基づいてロードされなかったすべてのレコードをこのファイルに書き込むようOracleデータベースに指示することになります。すでに存在する廃棄ファイルを指定すると、そのファイルは上書きされます。
ログ・ファイル: ログ・ファイルの名前とロケーションを指定すると、外部表に関連するメッセージをこのファイルに記録するようOracleデータベースに指示することになります。すでに存在するログ・ファイルを指定すると、新しいメッセージが追加されます。
これらの各ファイルについて、ファイルの名前とロケーションを指定するか、「未使用」または「デフォルトのロケーションを使用」を選択できます。
「拒否」では、拒否できる行数を指定できます。デフォルトでは、拒否できる行数に制限はありません。「無制限に拒否」をfalseに設定する場合は、「拒否できる数」に数値を入力します。
パラレル: パラレル処理を有効にします。単一のシステムを使用している場合、パフォーマンスを向上するには、この値をNONPARALLEL
に設定します。複数のシステムを使用している場合は、デフォルトのPARALLEL
をそのまま使用します。データ・ファイルは、アクセス・ドライバによって、個別に処理可能なチャンクに分割されます。次のファイル、レコードおよびデータ特性では、ファイルのパラレル処理ができません。
シーケンシャルなデータ・ソース(テープ・ドライブやパイプなど)。
マルチバイト・キャラクタ・セット内にあり、文字列中で任意のバイトから始まっているために文字境界を決定できないデータ。この制限は、レコード当たりのバイト数が固定されているデータ・ファイルには適用されません。
VARフォーマットのレコード。
外部表をワークスペースにインポートしたり、ソース・ファイルを指定せずに外部表を作成した場合は、これらのプロパティを構成しないでください。データ特性のプロパティは、外部表プロパティ・ウィンドウの「アクセス・パラメータ」タブの設定によって無効になります。
「データ特性」では、次のプロパティを設定できます。
エンディアン: 「エンディアン」プロパティのデフォルトは「プラットフォーム」です。この指定によって、フラット・ファイルのエンディアンはそのファイルが存在するプラットフォームのエンディアンに一致するものとみなされます。ファイルがWindowsプラットフォーム上に存在する場合、データはリトル・エンディアン・データとして処理されます。ファイルがSun SolarisまたはIBM MVSに存在する場合、データはビッグ・エンディアンとして処理されます。フラット・ファイルのエンディアン値が判明している場合は、ビッグ・エンディアンまたはリトル・エンディアンを選択できます。ファイルがUTF16で、エンディアンを示すマークがファイルの先頭に含まれている場合、そのエンディアンが使用されます。
文字列のサイズ: このプロパティは、UTF16など、マルチバイト・キャラクタ・セットのデータを処理する方法を指定します。デフォルトでは、データファイル内の文字列の長さはバイト数であるとみなされます。文字列のサイズが文字数で指定されるように、選択内容を変更することもできます。
外部表をワークスペースにインポートしたり、ソース・ファイルを指定せずに外部表を作成した場合は、これらのプロパティを構成しないでください。フィールド編集のプロパティは、外部表プロパティ・ウィンドウの「アクセス・パラメータ」タブの設定によって無効になります。
「フィールド編集」では、データファイル内の文字フィールドで実行される余白切捨てのタイプを指定できます。デフォルト設定では、切捨ては実行されません。これ以外の切捨てオプションを指定すると、パフォーマンスが低下する場合があります。また、文字フィールドの左側、右側、または両側の空白を切り捨てるように、切捨てオプションを設定することもできます。
また、SQL*Loaderの切捨て機能に従って切捨てを実行するオプションも設定できます。SQL*Loaderの切捨てを選択すると、固定長ファイルの場合は右側が切り捨てられます。囲みを持つように指定されたデリミタ付きファイルの場合は、フィールドに囲みがない場合にのみ左側が切り捨てられます。
レコード内の欠落フィールドの処理方法を指示できます。値の欠落したフィールドをNULLにするオプションをtrueに設定すると、値の欠落したフィールドはNULLに設定されます。このプロパティをfalseに設定すると、値の欠落したフィールドは拒否され、指定した不正なファイルに送られます。
詳細は、「識別」を参照してください。
外部表と複数のフラット・ファイルを関連付けるには、外部表に少なくとも1つのデータ・ファイルを追加する必要があります。
データ・ファイルを追加する手順は、次のとおりです。
「データファイル」ノードを右クリックして「作成」を選択します。
データファイルの名前を入力します(例: DATAFILE1)。入力した名前は、「構成プロパティ」ダイアログ・ボックスの右パネルに新規ノードとして表示されます。
定義したデータファイルごとに、次の値を入力します。
データファイルのロケーション: フラット・ファイルのロケーション。
データファイル名: 拡張子を含むフラット・ファイル名。たとえば、myflatfile.datと入力します。