26.4 レガシー・データ・ロード機能を使用したアプリケーションの管理
レガシー・データ・ロード機能を持つアプリケーションでは、エンド・ユーザーは、アクセスできる任意のスキーマ内にある表にデータを動的にインポートできます。
- レガシー・データ・ロードと新しいデータ・ロードの比較
レガシー・データ・ロードと新しいデータ・ロードの相違点について説明します - レガシー・データ・ロード・ウィザードの作成について
ページの作成ウィザードを実行して「データ・ロード」ページを作成することで、データ・ロード・ウィザードを作成します。 - レガシー・データ・ロード・ページの作成
レガシー・データ・ロード・ウィザードを作成するには、開発者がページの作成ウィザードでデータ・ロード・ページを作成します。 - レガシー・データ・ロード・ページの再作成
既存のレガシー・データ・ロード・ページに変更を加えるには、データ・ロード定義を削除せずに、新しいページを再作成することをお薦めします。 - レガシー・データ・ロード定義の編集
「共有コンポーネント」でデータ・ロード定義を編集します。
親トピック: アプリケーション・レガシー・コンポーネントの管理
26.4.1 レガシー・データ・ロードと新しいデータ・ロードの比較
レガシー・データ・ロードと新しいデータ・ロードの相違点について説明します
Oracle APEXには、新しいデータ・ロードとレガシー・データ・ロードの2つのタイプのデータ・ロードが含まれています。新しいデータ・ロードには、レガシー・データ・ロードよりも多くの利点があります。
新しいデータ・ロードの利点は次のとおりです。
- 新しいアプリケーション・データ・ロードでは、
CSV
、XLSX
、XML
およびJSON
形式がサポートされます。 - 列マッピングは設計時に実施され、エンド・ユーザーの負担がなくなります。
- 単純な名前または正規表現に基づいた柔軟な列マッピング。
- トランスフォーメーション・ルールまたはルックアップ問合せによるデータ変換。
- エンド・ユーザーのための簡単なワークフロー: ファイルのアップロード、プレビューの確認、データのロード。
CSV
、XLSX
、XML
およびJSON
のデータ形式を表またはコレクションにアップロードできます。- データ・ロードは、エラー処理の有無とともに、データを追加、マージまたは置換するように構成できます。
- シンプルで新しいプロセス・タイプのデータ・ロード: 目的に合わせてデータ・ロードのページをカスタマイズできます。
- カスタム・プロセスには、
APEX_DATA_LOADING
PL/SQL APIを使用できます。 - 最大300列をロードできます。レガシー・データ・ロードでは最大45までのサポートになる点に注意してください。
26.4.2 レガシー・データ・ロード・ウィザードの作成について
ページの作成ウィザードを実行して「データ・ロード」ページを作成することで、データ・ロード・ウィザードを作成します。
データ・ロード・ページの作成プロセス中に、開発者はアップロード表とその一意の列、表参照およびデータ・トランスフォーメーション・ルールを指定できます。
ノート:
データ・ロード・ウィザードは、何十万ものデータ行をロードするようには設計されていません。データ・ロード・ウィザードを使用してこの大量のデータをロードすることは可能ですが、大量のデータ・ファイルの転送およびロードの両方でパフォーマンスの問題が発生する可能性があります。Oracle SQL DeveloperおよびOracle SQL*Loaderのようなツールの方が、大量のデータのロードに適しています。
データ・ロード・ウィザードの実装には、次のサポートが含まれます。
-
表の定義 - この定義は、一意のキー列を持つデータ・アップロード表の名前を指定します。
-
データ・トランスフォーメーション・ルール - インポート・データを大文字や小文字に変更するといったトランスフォーメーションのフォーマットを行うために、データ・トランスフォーメーション・ルールを定義する必要があります。たとえば、インポート・ファイルに大文字と小文字の両方の列データが含まれ、アップロード表ではすべて大文字であることが必要な場合、大文字のみをターゲット列に挿入するようにデータ・トランスフォーメーション・ルールを定義できます。
-
表参照 - インポート・ファイルの既存データを別の表のデータにマッピングする必要がある場合、表参照を指定してマッピングを実行します。たとえば、インポート・ファイルには
DEPTNO
列に部門名が含まれているが、アップロード表ではその列に数値が必要な場合、表参照ルールを使用して、別の表でその部門名に対応する部門番号を探します。 -
列名の別名 - 開発者がエンド・ユーザーに表の列名を公開したり、エンド・ユーザーにすべての列を公開することを望まない状況が数多くあります。このような状況では、公開する必要がある列の別名を作成できます。
-
同時実行性の管理 - 複数のユーザーが同時にデータをアップロードする場合、開発者は追加の列を使用して、基礎となる表のデータ・バージョンを追跡できます。データ・ロード・ウィザードでは、この列を使用して、別のユーザーが同時に同じデータを使用しているかどうかを確認し、エンド・ユーザーに伝えます。これは、定期的に更新される表にアップロードする場合に特に重要です。
-
複数のスプレッドシート列 - アップロードされるスプレッドシートに複数の列があり、開発者がその列を連結して1つの表の列にアップロードすることが必要な状況が数多くあります(スプレッドシートの
FirstName
およびLastName
をEMP
表のENAME
にアップロードするなど)。 -
検証のスキップ - 検証ステップをスキップすることで、大量のレコードをアップロードする際のデータ・ロードのパフォーマンスを向上できます。何千ものレコードをアップロードする場合、エンド・ユーザーは、各レコードの検証に関心がないことがあります。各レコードが新規レコードとして挿入されることが確実な場合は、データ・ロード・プロセスで重複をチェックする必要はありません。
新たに生成されたデータ・ロード・ウィザードは4つのページで構成され、ユーザーはファイルからの、またはコピー・アンド・ペーストによるデータのアップロード、データおよび表のマッピングの定義、データの検証、および最終的な表へのデータのアップロードを行うことができます。開発者は後で、「共有コンポーネント」、「データ参照」、「データ・ロード定義」にアクセスして、表参照やデータ・トランスフォーメーション・ルールなどのデータ・ロード・ウィザードの定義を編集できます。
サポートされるデータ型
データ・ロード・ウィザードは、次のデータ型をサポートしています。
-
VARCHAR2
-
DATE
-
TIMESTAMP
-
NUMBER
サポートされないデータ型
データ・ロード・ウィザードは、次のデータ型をサポートしません。
-
ラージ・オブジェクト(
BLOB
およびCLOB
) -
複合型(
XMLTYPE
およびSDO_GEOMETRY
) -
CHAR
26.4.3 レガシー・データ・ロード・ページの作成
レガシー・データ・ロード・ウィザードを作成するには、開発者がページの作成ウィザードでデータ・ロード・ページを作成します。
レガシー・データ・ロード・ウィザードを作成するには:
ヒント:
データ・ロード・ウィザード・ページの作成後、変更が必要な場合は、次の項で説明するように、データ・ロード定義を削除するのではなく、新規ページを再作成することをお薦めします。26.4.4 レガシー・データ・ロード・ページの再作成
既存のレガシー・データ・ロード・ページに変更を加えるには、データ・ロード定義を削除せずに、新しいページを再作成することをお薦めします。
データ・ロード定義を削除しないでレガシー・データ・ロード・ウィザード・ページを再作成するには: