Как я могу создать таблицу в качестве выбора из другой базы данных в Oracle? - PullRequest
7 голосов
/ 30 июля 2009

Можно ли создать таблицу (в моей базе данных разработчика), используя SELECT из другой базы данных?

Я хочу что-то вроде:

create tmp_table as select * from prod_db.prod_schema.table

Есть ли синтаксис для этого или мне нужно сначала создать ссылку на базу данных?

Ответы [ 4 ]

11 голосов
/ 30 июля 2009

Сначала необходимо создать канал данных .

Oracle не может запрашивать другие базы данных, если не создана ссылка на БД. Если ссылка на БД существует, как вы отметили, вы должны сделать:

create tmp_table as select * from prod_schema.table@prod_db
3 голосов
/ 30 июля 2009

@ Стив прав, что должна быть ссылка на БД, но синтаксис такой:

create tmp_table as select * from table@dblink
1 голос
/ 30 июля 2009

Не забудьте создать свои индексы. Вы можете получить это для всех таблиц в вашей схеме с помощью следующего запроса:

SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)
     FROM USER_INDEXES u;
0 голосов
/ 27 июля 2012
CREATE TABLE table_name
AS SELECT * FROM schema_name.table_name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...