2016-11-11 18 views
1

Я довольно новичок в oracle и пытаюсь создать синоним, чтобы указать две разные таблицы в разные дни. См. Мой пример ниже.Синоним для двух таблиц с одинаковым именем, но с разными суффиксами?

У меня есть две таблицы с именем table_1 и table _2 и синоним table. Сначала я указываю синоним на таблицу_1;

CREATE SYNONYM table for schema.table_1;

На следующий день я хотел бы указать синоним к table_2. Должен ли я использовать другое заявление как

CREATE OR REPLACE SYNONYM table for schema.table_2;

или есть другой способ. Может кто-нибудь мне помочь?

+0

нет я просто привожу пример имя таблицы –

ответ

0

Существует множество вариантов.

  1. Создайте задание базы данных, которое будет обновлять синонимы по расписанию. Это может вызвать проблемы для запросов, которые используют синоним во время его замены.
  2. Создайте пакет с процедурами, которые будут скрывать переход таблицы из прикладного уровня.
  3. Создайте представление, чтобы скрыть переключение таблиц на примере ниже. Предполагая, что вы только читаете, а таблицы имеют одинаковую структуру.
  4. Не дублируйте таблицы. не

Выберите для просмотра

SELECT DUMMY 
FROM (
    SELECT 'X' AS DUMMY, 0 AS SEP FROM DUAL TABLE1 
    UNION ALL 
    SELECT 'Y' AS DUMMY, 1 AS SEP FROM DUAL TABLE2) 
WHERE 
    SEP = MOD(EXTRACT(DAY FROM SYSDATE), 2) 
+0

мне нужно разъяснение относительно синонимов. Должен ли я каждый день заменять синоним? –

+0

Арун, вы не объяснили, почему вы все это делаете, какова ваша цель и проблема на высоком уровне. Почему вы хотите сделать синоним? Вы вращаете столы каждый день? Если да - почему? – Vlad

+0

Мы усекаем и загружаем таблицы ежедневно, поэтому мы пытаемся создать два набора таблиц с одинаковым именем, но с разными суффиксами и синонимом точек с этими таблицами в альтернативные дни. –