Oracle:交换表名

Ian*_*the 2 sql oracle

我需要每天加载一个包含~18M记录的表,并且为了最小化客户端的停机时间,我们有加载temp的方法然后交换表名.见下面的过程

表A是原始表,表TMP是临时表

  1. 加载表TMP
  2. 将表A重命名为表A_V1
  3. 将表TMP重命名为表A.
  4. 将表A_V1重命名为表TMP
  5. 截断表TMP以准备下一次加载

有没有其他方式交换表名?或任何其他方式来实现这一目标?

非常感谢.

Ben*_*Ben 6

使用同义词.

首先加载TABLEA_YYYYMMDD,重新创建约束等.

然后,

create or replace synonym tablea for tablea_yyyymmdd
Run Code Online (Sandbox Code Playgroud)

最后,如果你想,放弃以前的 tablea_yyyymmdd.