同义词指向两个具有相同名称但后缀不同的表?

Synonym to point two tables with same name but different suffix?

我是 oracle 的新手,正在尝试创建一个同义词以在不同的日期指向两个不同的表。请看下面我的例子。

我有两个名为 table_1table _2 的表以及一个同义词 table。起初我将同义词指向 table_1;

CREATE SYNONYM table for schema.table_1;

第二天我想将同义词指向 table_2。我应该使用另一个语句,如

CREATE OR REPLACE SYNONYM table for schema.table_2;

或者有没有其他办法。有人可以帮助我吗?

有很多选择。

  1. 创建一个数据库作业,按计划进行同义词更新。这可能会给在替换时使用同义词的查询带来麻烦。
  2. 创建一个包含程序的程序包,该程序将隐藏 table 从应用程序层切换。
  3. 根据下面的示例 select 创建视图以隐藏 table 切换。假设您只是阅读并且 table 具有相同的结构。
  4. 不要重复 table。

Select 观看次数

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)