从转储文件加载外部表

Bib*_*dhi 2 oracle datapump

我已经使用EXPDPprocess创建了一个转储文件。

我正在尝试使用上述转储文件创建一个外部表。

我正在使用以下语句来创建外部表:

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')
);
Run Code Online (Sandbox Code Playgroud)

执行上述语句后,表已创建,但是当我发出SELECT语句查看数据时,出现以下错误:

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')
);
Run Code Online (Sandbox Code Playgroud)

我是不是做错了什么,还是我可以使用 Datapump 方法生成的转储文件来创建外部表?

Pau*_*ite 5

如果您ORA-39324Oracle 文档中查找错误描述,您将看到:

原因:为使用数据泵创建的加载操作指定了转储文件。使用ORACLE_DATAPUMP访问驱动程序的外部表无法处理此类转储文件。

行动:使用数据泵访问此转储文件中的数据。

创建的转储EXPDP只能由IMPDP(或dbms_datapump)读取。而使用可写外部表(使用数据泵驱动程序)创建的转储只能使用外部表接口(使用数据泵驱动程序)重新读取。Expdp不仅仅是转储数据(这是使用数据泵驱动程序的可写外部表所做的唯一事情)。


社区 Wiki 的回答最初基于BriteSpongeRaj 的评论

社区 wiki 帖子已捐赠给社区,希望其他人能够对其进行编辑以使其保持最新状态、添加有用信息并总体上提高其质量。