2012-01-30 2 views
3

У меня есть две таблицы oracle, которые по определению идентичны в определении, отличном от определения раздела. Я хочу протестировать одну таблицу и другую таблицу. Есть ли способ заменить имя таблицы? Я не хочу бросать стол, потому что они большие, и для загрузки данных в них требуется много времени.Как заменить имя таблицы в oracle

ответ

2

Просто переименуйте их. Например, если у вас есть TABLE_A, переименуйте его в TABLE_A_TEMP. Затем переименуйте TABLE_B в TABLE_A. Затем переименуйте TABLE_A_TEMP в TABLE_B.

Чтобы переименовать, вам придется выпустить

alter table table_name rename to new_table_name; 
8

Используйте synonym, что указывает на реальных таблиц.

Например,

CREATE OR REPLACE SYNONYM partition_test FOR partition_table1; 

Тест partition_table1, например, select pt.* from partition_test pt;

CREATE OR REPLACE SYNONYM partition_test FOR partition_table2; 

Тест partition_table2, например, select pt.* from partition_test pt;

Обратите внимание, что тестовый код тот же каждый раз.

Когда вы закончите тестирование, отбросьте синоним.

DROP SYNONYM partition_test; 
2

Третий способ заключается в использовании вида. Скажем, ваши «настоящие» имена таблиц - TABLE_A и TABLE_B. Создание вида, MY_DATA_VIEW (или любой другой), и он указывает на какой стол вы хотите, чтобы указать:

CREATE OR REPLACE VIEW TEST_VIEW AS SELECT * FROM TABLE_A; 

или

CREATE OR REPLACE VIEW TEST_VIEW AS SELECT * FROM TABLE_B; 

Делите и наслаждайтесь.

Смежные вопросы