Можно ли создать таблицу (в моей базе данных разработчика), используя SELECT из другой базы данных?
Я хочу что-то вроде:
create tmp_table as select * from prod_db.prod_schema.table
Есть ли синтаксис для этого или мне нужно сначала создать ссылку на базу данных?
Сначала необходимо создать канал данных .
Oracle не может запрашивать другие базы данных, если не создана ссылка на БД. Если ссылка на БД существует, как вы отметили, вы должны сделать:
create tmp_table as select * from prod_schema.table@prod_db
@ Стив прав, что должна быть ссылка на БД, но синтаксис такой:
create tmp_table as select * from table@dblink
Не забудьте создать свои индексы. Вы можете получить это для всех таблиц в вашей схеме с помощью следующего запроса:
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;
CREATE TABLE table_name AS SELECT * FROM schema_name.table_name;