В Oracle, как мне сделать внешнюю таблицу, которая имеет ту же структуру, что и существующая таблица? - PullRequest
2 голосов
/ 27 октября 2009

Я знаю, что вы можете создать таблицу для экспорта следующим образом:

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: операция не поддерживается внешний организованный стол

1 Ответ

2 голосов
/ 27 октября 2009

просто используйте описание вашей таблицы:

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

Либо из вашего хранилища DDL (у вас оно есть, не так ли? :), либо динамически с DBMS_METADATA.get_ddl, например.

...