2

我知道您可以像这样创建一个导出表:

create table bulk_mbr organization external( 
type ORACLE_DATAPUMP
default directory jason_home 
location ('mbr.dat')) 
as SELECT * FROM mbr;

但是我想为导入做这样的事情,这样我就可以创建一个与现有表具有相同结构的外部导入表,将数据加载到其中,然后执行一个简单的 INSERT INTO/SELECT FROM 查询来移动数据那里。有没有办法做到这一点?

我试过这个,但它不起作用:

create table bulk_mbr organization external( 
type ORACLE_LOADER 
default directory jason_home 
location ('mbr.dat')) 
as SELECT * FROM mbr where 1=0;

但得到:

ORA-30657: 外部组织表不支持操作

4

1 回答 1

2

just use your table description:

SQL> CREATE TABLE bulk_mbr (
  2     ID NUMBER,
  3     d VARCHAR2(4000)
  4  )
  5  ORGANIZATION EXTERNAL (
  6     TYPE ORACLE_LOADER
  7     DEFAULT DIRECTORY jason_home
  8     LOCATION ('mbr.dat')
  9  );

Table created

Either from your DDL repository (you have one haven't you? :) or dynamically with DBMS_METADATA.get_ddl for example.

于 2009-10-27T14:56:07.937 回答