Eu criei um dumpfile usando EXPDP
process.
Estou tentando criar uma tabela externa usando o dumpfile mencionado acima.
Estou usando a seguinte instrução para criar a tabela externa:
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')
);
Após a execução da instrução acima a tabela é criada mas quando emito SELECT
a instrução para ver os dados recebo o seguinte erro:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout ORA-39324: cannot load data from Data Pump dump file
Estou fazendo algo errado ou posso usar um dumpfile gerado pelo método Datapump para criar uma tabela externa?
Se você procurar a descrição do erro
ORA-39324
na documentação do Oracle , verá:Um dump criado por
EXPDP
só pode ser lido porIMPDP
(oudbms_datapump
). Considerando que um dump criado usando tabelas externas graváveis (usando o driver datapump) pode ser relido apenas usando a interface de tabela externa (usando o driver datapump).Expdp
faz mais do que despejar dados (que é a única coisa feita por tabelas externas graváveis usando o driver datapump).Resposta do Community Wiki originalmente baseada em comentários de BriteSponge e Raj