В Oracle, как мне сделать внешнюю таблицу, которая имеет ту же структуру, что и существующая таблица?
Я знаю, что вы можете создать таблицу для экспорта следующим образом:
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 ответ
Просто используйте описание вашей таблицы:
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
например.