我需要每天加载一个带有〜18M记录的表,并且为了最大限度地减少客户端的停机时间,我们有加载temp的方法,然后交换表名。见下文Oracle:交换表名
表的方法是原表,表TMP是临时表
- 负载表TMP
- 重命名表A至表A_V1
- 重命名表TMP于表A
- 将表A_V1重命名为表TMP
- 截断表TMP准备下次加载
是否有任何其他方式交换表名称?或以任何其他方式来实现这一目标?
非常感谢。
我需要每天加载一个带有〜18M记录的表,并且为了最大限度地减少客户端的停机时间,我们有加载temp的方法,然后交换表名。见下文Oracle:交换表名
表的方法是原表,表TMP是临时表
是否有任何其他方式交换表名称?或以任何其他方式来实现这一目标?
非常感谢。
使用同义词。
,如果你想,放下以前tablea_yyyymmdd
首先装入TABLEA_YYYYMMDD
,重建的制约等
然后,
create or replace synonym tablea for tablea_yyyymmdd
最后。
这是最好的办法。如果你喜欢,你可以删除并重新创建表格,而不是截断。祝你好运!
而不是实际重命名表,您可以有两个表,A1
和A2
,以及两个同义词A
和TEMP
,然后您每天在表之间切换。
老实说,虽然,我想重命名表可能只是为有效长的路要走,但既然你问其他方式这是可以做到的,我想我会在凑钱。
作为替代使用相同的概念,你可以用类似的方式创建一个视图。 – 2012-03-09 14:00:51
感谢所有的答案。^_ ^ – Ianthe 2012-03-12 07:18:03