26.4 レガシー・データ・ロード機能を使用したアプリケーションの管理

レガシー・データ・ロード機能を持つアプリケーションでは、エンド・ユーザーは、アクセスできる任意のスキーマ内にある表にデータを動的にインポートできます。

26.4.1 レガシー・データ・ロードと新しいデータ・ロードの比較

レガシー・データ・ロードと新しいデータ・ロードの相違点について説明します

Oracle APEXには、新しいデータ・ロードとレガシー・データ・ロードの2つのタイプのデータ・ロードが含まれています。新しいデータ・ロードには、レガシー・データ・ロードよりも多くの利点があります。

新しいデータ・ロードの利点は次のとおりです。

  • 新しいアプリケーション・データ・ロードでは、CSVXLSXXMLおよびJSON形式がサポートされます。
  • 列マッピングは設計時に実施され、エンド・ユーザーの負担がなくなります。
  • 単純な名前または正規表現に基づいた柔軟な列マッピング。
  • トランスフォーメーション・ルールまたはルックアップ問合せによるデータ変換。
  • エンド・ユーザーのための簡単なワークフロー: ファイルのアップロード、プレビューの確認、データのロード。
  • CSVXLSXXMLおよびJSONのデータ形式を表またはコレクションにアップロードできます。
  • データ・ロードは、エラー処理の有無とともに、データを追加、マージまたは置換するように構成できます。
  • シンプルで新しいプロセス・タイプのデータ・ロード: 目的に合わせてデータ・ロードのページをカスタマイズできます。
  • カスタム・プロセスには、APEX_DATA_LOADING PL/SQL APIを使用できます。
  • 最大300列をロードできます。レガシー・データ・ロードでは最大45までのサポートになる点に注意してください。

26.4.2 レガシー・データ・ロード・ウィザードの作成について

ページの作成ウィザードを実行して「データ・ロード」ページを作成することで、データ・ロード・ウィザードを作成します。

データ・ロード・ページの作成プロセス中に、開発者はアップロード表とその一意の列、表参照およびデータ・トランスフォーメーション・ルールを指定できます。

ノート:

データ・ロード・ウィザードは、何十万ものデータ行をロードするようには設計されていません。データ・ロード・ウィザードを使用してこの大量のデータをロードすることは可能ですが、大量のデータ・ファイルの転送およびロードの両方でパフォーマンスの問題が発生する可能性があります。Oracle SQL DeveloperおよびOracle SQL*Loaderのようなツールの方が、大量のデータのロードに適しています。

データ・ロード・ウィザードの実装には、次のサポートが含まれます。

  • 表の定義 - この定義は、一意のキー列を持つデータ・アップロード表の名前を指定します。

  • データ・トランスフォーメーション・ルール - インポート・データを大文字や小文字に変更するといったトランスフォーメーションのフォーマットを行うために、データ・トランスフォーメーション・ルールを定義する必要があります。たとえば、インポート・ファイルに大文字と小文字の両方の列データが含まれ、アップロード表ではすべて大文字であることが必要な場合、大文字のみをターゲット列に挿入するようにデータ・トランスフォーメーション・ルールを定義できます。

  • 表参照 - インポート・ファイルの既存データを別の表のデータにマッピングする必要がある場合、表参照を指定してマッピングを実行します。たとえば、インポート・ファイルにはDEPTNO列に部門名が含まれているが、アップロード表ではその列に数値が必要な場合、表参照ルールを使用して、別の表でその部門名に対応する部門番号を探します。

  • 列名の別名 - 開発者がエンド・ユーザーに表の列名を公開したり、エンド・ユーザーにすべての列を公開することを望まない状況が数多くあります。このような状況では、公開する必要がある列の別名を作成できます。

  • 同時実行性の管理 - 複数のユーザーが同時にデータをアップロードする場合、開発者は追加の列を使用して、基礎となる表のデータ・バージョンを追跡できます。データ・ロード・ウィザードでは、この列を使用して、別のユーザーが同時に同じデータを使用しているかどうかを確認し、エンド・ユーザーに伝えます。これは、定期的に更新される表にアップロードする場合に特に重要です。

  • 複数のスプレッドシート列 - アップロードされるスプレッドシートに複数の列があり、開発者がその列を連結して1つの表の列にアップロードすることが必要な状況が数多くあります(スプレッドシートのFirstNameおよびLastNameEMP表のENAMEにアップロードするなど)。

  • 検証のスキップ - 検証ステップをスキップすることで、大量のレコードをアップロードする際のデータ・ロードのパフォーマンスを向上できます。何千ものレコードをアップロードする場合、エンド・ユーザーは、各レコードの検証に関心がないことがあります。各レコードが新規レコードとして挿入されることが確実な場合は、データ・ロード・プロセスで重複をチェックする必要はありません。

新たに生成されたデータ・ロード・ウィザードは4つのページで構成され、ユーザーはファイルからの、またはコピー・アンド・ペーストによるデータのアップロード、データおよび表のマッピングの定義、データの検証、および最終的な表へのデータのアップロードを行うことができます。開発者は後で、「共有コンポーネント」、「データ参照」、「データ・ロード定義」にアクセスして、表参照やデータ・トランスフォーメーション・ルールなどのデータ・ロード・ウィザードの定義を編集できます。

サポートされるデータ型

データ・ロード・ウィザードは、次のデータ型をサポートしています。

  • VARCHAR2

  • DATE

  • TIMESTAMP

  • NUMBER

サポートされないデータ型

データ・ロード・ウィザードは、次のデータ型をサポートしません。

  • ラージ・オブジェクト(BLOBおよびCLOB)

  • 複合型(XMLTYPEおよびSDO_GEOMETRY)

  • CHAR

26.4.3 レガシー・データ・ロード・ページの作成

レガシー・データ・ロード・ウィザードを作成するには、開発者がページの作成ウィザードでデータ・ロード・ページを作成します。

レガシー・データ・ロード・ウィザードを作成するには:

  1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
  2. アプリケーションを選択します。
  3. 「アプリケーション」ホームページで、「ページの作成.」をクリックします
    「ページの作成」が表示され、「コンポーネント」「機能」および「レガシー・ページ」の3つのタブがあります。
  4. 「レガシー・ページ」をクリックし、「レガシー・データ・ロード」を選択します。
  5. 「データ・ロード表」で、次のステップを実行します。
    1. レガシー・データ・ロード - レガシー・データ・ロード定義を新しく作成するか、既存のものを再利用するかを選択します。
    2. 定義名 - このデータ・ロード定義の名前を入力します。
    3. 所有者 - フォームの基になる表の所有者を選択します。
    4. 表名 - データのロードに使用する表を選択します(アップロード表とも呼ばれます)。
    5. 一意列1 - データ・ロードの処理で一意の主キー列として使用する列名を指定します。最大3個の一意キー列を定義できます。
    6. 大/小文字区別 - 選択した一意キー列で大/小文字を区別するかどうかを指定します。デフォルトでは、これは「いいえ」に設定されます。
    7. 追加の一意列を定義します。最大3個の一意キー列を定義できます。
    8. 「次」をクリックします。
  6. トランスフォーメーション・ルールの追加(オプション)の場合 - トランスフォーメーション・ルールを使用すると、アップロードされるデータをベース表に挿入する前に変更できます。変換する列とその列に適用する適切なルールを選択します。
    1. トランスフォーメーション・ルールを作成するための列の選択 - トランスフォーメーション・ルール定義の基になる列を選択し、右に移動します。
    2. ルール名 - このトランスフォーメーション・ルールの名前を入力します。
    3. 順序 - トランスフォーメーション・ルールの順序を指定します。これによって実行の順序が決まります。
    4. タイプ - 実行するトランスフォーメーション・ルールのタイプを選択します。
    5. 選択したトランスフォーメーション・タイプに基づいて追加の詳細を指定します。
    6. 「トランスフォーメーションの追加」をクリックします。
    7. 「次」をクリックします。
  7. 表ルックアップの場合 - アップロードされた値を別の表と照合し、関連するキー値をアップロードされた値のかわりに使用します。
    1. 列の新規表参照の追加(オプション) - 表参照定義の基になる列を指定します。
    2. 参照表の所有者 - 参照表の所有者を選択します。
    3. 参照表名 - この表参照定義に使用される表を指定します。
    4. 戻り列 - 表参照で戻される列の名前を選択します。この値は、指定されたロード列に挿入されるもので、通常、外部キー・リレーションシップの親のキー値です(たとえば: DEPTNO)。
    5. アップロード列 - エンド・ユーザーによって戻り列のかわりにアップロードされる列の名前を選択します。これは、参照表の表示値を含む列です(たとえば: DNAME)。
    6. アップロード列2 - 必要に応じて、戻り列を一意に識別するためにアップロードされる2番目の列の名前を選択します。たとえば、州コードを一意に識別するには、州名および国をアップロードする必要がある場合があります。
    7. アップロード列3 - 戻り列を一意に識別するためにアップロードされる3番目の列の名前を選択します。
    8. 「参照の追加」をクリックして参照定義を追加します。さらに表参照を追加するには、前のステップを繰り返します。 
    9. 「次へ」をクリックして、参照の作成を終了します。
  8. 「ページ属性」で、次のステップを実行します。
    1. ステップ1、ステップ2、ステップ3およびステップ4 - 各ステップでページ名とページ番号を入力します。
    2. ページ番号 - 各ステップのページ番号を入力します。
    3. ページ・モード - ページ・モードを指定します。さらに学習するには、フィールドレベル・ヘルプを参照してください。
    4. ページ・グループ - このページと関連付けるページ・グループの名前を指定します。
    5. ブレッドクラム - ページでブレッドクラム・ナビゲーション・コントロールを使用するかどうか、およびどのブレッドクラム・ナビゲーション・コントロールを使用するかを選択します。
    6. 「次」をクリックします。
  9. 「ナビゲーション・メニュー」で、次のステップを実行します。
    1. ナビゲーションのプリファレンス - このページをどのようにナビゲーション・メニューに統合するかを選択します。さらに学習するには、フィールドレベル・ヘルプを参照してください。
    2. 「次」をクリックします。
  10. 「ボタンとブランチ」で、データ・ロード・ウィザードのページのボタンに使用するブランチを指定します。
    1. 新規ボタン・ラベル - 「次へ」ボタンに表示するテキストを入力します。
    2. 「戻る」ボタン・ラベル - 「前」ボタンに表示するテキストを入力します。
    3. 「取消」ボタン・ラベル - 「取消」ボタンに表示するテキストを入力します。
    4. 「取消」ボタンでブランチするページ - ユーザーが「取消」をクリックしたときの、ブランチ先のページ番号を指定します。
    5. 「終了」ボタン・ラベル - 「送信」ボタンに表示するテキストを入力します。
    6. ページへの「終了」ボタン・ブランチ - ブランチ先のページの番号を指定します。アプリケーション内の同じページまたは他のいずれのページにもブランチできます。
    7. 「作成」をクリックします。
  11. 「ページの保存と実行」をクリックして、データ・ロード・ウィザードをテストします。

ヒント:

データ・ロード・ウィザード・ページの作成後、変更が必要な場合は、次の項で説明するように、データ・ロード定義を削除するのではなく、新規ページを再作成することをお薦めします。

26.4.4 レガシー・データ・ロード・ページの再作成

既存のレガシー・データ・ロード・ページに変更を加えるには、データ・ロード定義を削除せずに、新しいページを再作成することをお薦めします。

データ・ロード定義を削除しないでレガシー・データ・ロード・ウィザード・ページを再作成するには:

  1. データ・ロード定義ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。

      共有コンポーネント・ページが表示されます。

    4. 「データ・ロード定義」で、「データ・ロード定義」をクリックします。
    5. 「レガシー・データ・ロード」リージョンを展開して、「レガシー・データ・ロード」をクリックします。
  2. 再作成するレガシー・データ・ロードをクリックします。

    データ・ロード表の詳細ページが表示されます。

  3. 「タスク」から、「このレガシー・データ・ロードを使用してページを作成」をクリックします。

    「データ・ロード・ウィザードの作成」のページ属性ページが表示されます。

  4. ページごとに、該当する属性を編集し、「次へ」をクリックします。

    属性についてさらに学習するには、フィールドレベル・ヘルプを参照してください。

  5. 「作成」をクリックします。

26.4.5 レガシー・データ・ロード定義の編集

「共有コンポーネント」でデータ・ロード定義を編集します。

データ・ロード定義は、アプリケーションのデータ・ロード・ウィザードで使用されるデータ・ロード表、表ルールおよび参照表で構成されます。データ・ロード表は、データをアップロードするデータ・ロード・プロセスで使用するために選択された、スキーマ内の既存の表です。

データ・ロード定義を編集するには:

  1. データ・ロード定義ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
    2. アプリケーションを選択します。
    3. アプリケーションのホームページで、「共有コンポーネント」をクリックします。
      共有コンポーネント・ページが表示されます。
    4. 「データ参照」で、「データ・ロード定義」をクリックします。
    5. 「レガシー・データ・ロード」リージョンを展開して、「レガシー・データ・ロード」をクリックします。
    データ・ロード表の詳細ページが表示されます。属性についてさらに学習するには、フィールドレベル・ヘルプを参照してください。
  2. 「データ・ロード定義」で、次のように入力します。
    • 名前 - データ・ロード定義の名前。

    • 表名 - データ・ロード・定義に使用する基礎となる表の名前を表示します。

    • 一意列1 - データ・ロードの処理で一意の主キー列として使用する列名。

    • 大/小文字区別 - 選択した一意キー列1で大/小文字を区別するかどうかを指定します。デフォルトでは、これは「いいえ」に設定されます。

    • 一意列2 - 選択した表の一意キーの定義が、2つ以上の列から構成される複合キーの場合、この列名が、データ・ロードの処理中に2番目の一意キーの列として使用されます。

    • 大/小文字区別 - 選択した一意キー列2で大/小文字を区別するかどうかを指定します。デフォルトでは、これは「いいえ」に設定されます。

    • 一意列3 - 選択した表の一意キーの定義が、2つ以上の列から構成される複合キーの場合、この列名が、データ・ロードの処理中に3番目の一意キーの列として使用されます。

    • 大/小文字区別 - 選択した一意キー列3で大/小文字を区別するかどうかを指定します。デフォルトでは、これは「いいえ」に設定されます。

    • 検証のスキップ - データ・ロードのステップの1つとして、アップロード対象のレコードに実行されるアクションを検証します。検証をスキップするには、「はい」を選択します。

  3. 「トランスフォーメーション・ルール」には、以前定義したトランスフォーメーション・ルールがリストされます。
    • 新規ルールを作成するには:

      1. 「トランスフォーメーション・ルールの作成」をクリックします。

      2. 属性を編集します。

        属性についてさらに学習するには、フィールドレベル・ヘルプを参照してください。

      3. 「作成」をクリックします。

    • 既存のルールを編集するには:

      1. ルール名をクリックします。

      2. 属性を編集します。

      3. 「変更の適用」をクリックします。

  4. 表参照では、インポート・ファイルのデータを別の表にあるデータにマッピングします。
    • 表参照を新規作成するには:

      1. 「表参照の作成」をクリックします。

      2. 属性を編集します。

      3. 「作成」をクリックします。

    • 既存の表参照を編集するには:

      1. 列名をクリックします。

      2. 属性を編集します。

      3. 「変更の適用」をクリックします。

  5. 列名の別名では、別名を定義して、ユーザーがアップロードする列を正しく識別できるようにします。

    列名の別名を追加するには:

    1. 「LOVの編集」をクリックします。

    2. 属性を編集します。

    3. 「作成」をクリックします。

  6. 「同時実行性列名」で、同時実効性管理に使用する列を選択します。

    同時実行性により、開発者は、基礎となる表のデータ・バージョンを確認するための列を選択できます。これは、定期的に更新される表にアップロードする場合に特に重要です。

  7. 「変更の適用」をクリックします。