Sql Oracle:交换表名

Sql Oracle:交换表名,sql,oracle,Sql,Oracle,我需要每天加载一个包含约1800万条记录的表,为了最大限度地减少客户端的停机时间,我们可以加载一个临时文件,然后在加载后交换表名。请参阅下面的流程 表A是原始表,表TMP是临时表 负载表TMP 将表A重命名为表A_V1 将表TMP重命名为表A 将表A_V1重命名为表TMP 截断表TMP以准备下一次加载 还有其他交换表名的方法吗?或者其他方法来实现这一点 非常感谢。这是最好的方法。如果愿意,可以删除并重新创建表,而不是截断。祝你好运 使用同义词 首先加载到表格a\u YYYYMMDD,重新创建约束

我需要每天加载一个包含约1800万条记录的表,为了最大限度地减少客户端的停机时间,我们可以加载一个临时文件,然后在加载后交换表名。请参阅下面的流程

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

  • 负载表TMP
  • 将表A重命名为表A_V1
  • 将表TMP重命名为表A
  • 将表A_V1重命名为表TMP
  • 截断表TMP以准备下一次加载
  • 还有其他交换表名的方法吗?或者其他方法来实现这一点


    非常感谢。

    这是最好的方法。如果愿意,可以删除并重新创建表,而不是截断。祝你好运

    使用同义词

    首先加载到
    表格a\u YYYYMMDD
    ,重新创建约束等

    那么


    最后,如果您想删除以前的表A_yyyymmdd而不是实际重命名表,您可以有两个表,
    A1
    A2
    ,以及两个同义词,
    A
    TEMP
    ,然后每天在表之间切换


    老实说,我认为重命名表可能也是一种有效的方法,但既然您要求提供其他方法,我想我会插手。

    作为使用相同概念的替代方法,您可以以类似的方式创建视图。谢谢大家的回答^_^
    create or replace synonym tablea for tablea_yyyymmdd