異なる外部表から移入されたすべてのダンプ・ファイルは、別の外部表のLOCATION句で指定できます。たとえば、異なる本番データベースのデータを個別のファイルにアンロードし、次にそれらのファイルをデータ・ウェアハウスで定義された外部表に含めることができます。これにより、複数のソースから容易にデータを集計できます。唯一の制限は、すべての外部表のメタデータが完全に同じでなければいけない必要がある点です。つまり、キャラクタ・セット、タイムゾーン、スキーマ名、表名および列名がすべて一致する必要があります。また、列は同じ順序で定義され、そのデータ型も完全に同一である必要があります。1つ目の外部表を作成した後で、2つ目の外部表に同じ表名を使用できるようにするには、1つ目の外部表を削除する必要があります。こうすることで、2つのダンプ・ファイルにリストされたメタデータは同じ状態になり、これらのダンプ・ファイルを同時に使用して同じ外部表を作成できます。
SQL> CREATE TABLE inv_part_1_xt
2 ORGANIZATION EXTERNAL
3 (
4 TYPE ORACLE_DATAPUMP
5 DEFAULT DIRECTORY def_dir1
6 LOCATION ('inv_p1_xt.dmp')
7 )
8 AS SELECT * FROM oe.inventories WHERE warehouse_id < 5;
Table created.
SQL> DROP TABLE inv_part_1_xt;
SQL> CREATE TABLE inv_part_1_xt
2 ORGANIZATION EXTERNAL
3 (
4 TYPE ORACLE_DATAPUMP
5 DEFAULT directory def_dir1
6 LOCATION ('inv_p2_xt.dmp')
7 )
8 AS SELECT * FROM oe.inventories WHERE warehouse_id >= 5;
Table created.
SQL> CREATE TABLE inv_part_all_xt
2 (
3 PRODUCT_ID NUMBER(6),
4 WAREHOUSE_ID NUMBER(3),
5 QUANTITY_ON_HAND NUMBER(8)
6 )
7 ORGANIZATION EXTERNAL
8 (
9 TYPE ORACLE_DATAPUMP
10 DEFAULT DIRECTORY def_dir1
11 LOCATION ('inv_p1_xt.dmp','inv_p2_xt.dmp')
12 );
Table created.
SQL> SELECT * FROM inv_part_all_xt MINUS SELECT * FROM oe.inventories;
no rows selected