EXPDP
プロセスを使用してダンプファイルを作成しました。
上記のダンプファイルを使用して外部テーブルを作成しようとしています。
次のステートメントを使用して、外部テーブルを作成しています。
CREATE TABLE HR.DATA_LOAD
(
"EMP_NO" NUMBER(10,0) NOT NULL ENABLE,
"EMP_NAME" VARCHAR2(20 BYTE),
"DEPT_ID" NUMBER(10,0),
"DEPT_NM" VARCHAR2(20 BYTE),
"DOJ" VARCHAR2(20 BYTE),
"LOCATION" VARCHAR2(20 BYTE),
"PHN_NUM" NUMBER(20,0),
"EMAIL" VARCHAR2(20 BYTE),
"COL1" VARCHAR2(20 BYTE),
"COL2" VARCHAR2(20 BYTE)
)
ORGANIZATIONAL EXTERNAL
(
TYPE Oracle_DATAPUMP
DEFAULT DIRECTORY DATA_PUMP_DIR
LOCATION ('exp_dumpfile.dmp')
);
上記のステートメントを実行するとテーブルが作成されますが、SELECT
ステートメントを発行してデータを表示すると、次のエラーが発生します。
ORA-29913: error in executing ODCIEXTTABLEOPEN callout ORA-39324: cannot load data from Data Pump dump file
私は何か間違っているのですか、それともDatapumpメソッドによって生成されたダンプファイルを使用して外部テーブルを作成できるのですか?
エラーORA-39324
の説明を Oracleドキュメント で検索すると、次のように表示されます。
原因:データポンプを使用して作成されたロード操作に対してダンプファイルが指定されました。このタイプのダンプファイルは、
Oracle_DATAPUMP
アクセスドライバーを使用する外部テーブルでは処理できません。アクション:データポンプを使用して、このダンプファイルのデータにアクセスします。
EXPDP
によって作成されたダンプは、IMPDP
(またはdbms_datapump
)によってのみ読み取ることができます。一方、(datapumpドライバーを使用して)書き込み可能な外部テーブルを使用して作成されたダンプは、(datapumpドライバーを使用して)外部テーブルインターフェイスを使用してのみ再読み取りできます。 Expdp
は、データのダンプ以上のことを行います(これは、データポンプドライバーを使用して書き込み可能な外部テーブルによって行われる唯一のことです)。
コミュニティWikiの回答 元は BriteSponge および Raj によるコメントに基づく
コミュニティのwikiの投稿は、他の人が最新の状態に保ち、有用な情報を追加し、一般に品質を向上させるために編集することを期待して、コミュニティに寄付されました。