2012-03-09 11 views
2

〜18Mレコードのテーブルを毎日ロードする必要があります。クライアント側のダウンタイムを最小限に抑えるため、テンポラリをロードしてからテーブル名をスワップします。Oracle:テーブル名のスワップ

表A以下プロセスはorginalテーブルである参照、表TMPは、一時テーブルである

  1. 負荷テーブルTMP
  2. リネーム表A表A_V1は
  3. 表Aに表TMPの名前を変更します次のロードの準備のために、表TMP
  4. 切り捨て表TMPに表A_V1の名前を変更

テーブル名を交換する他の方法はありますか?またはこれを達成するための他の方法?

ありがとうございます。

答えて

6

シノニムを使用してください。あなたは、以前tablea_yyyymmddを削除する場合

はまず、などそして、

制約を再作成、TABLEA_YYYYMMDD

create or replace synonym tablea for tablea_yyyymmdd 

最後にロードします。

+1

代替として使用します同じコンセプトで、同様の方法でビューを作成することができます。 –

+0

お返事ありがとうございました。^_ ^ – Ianthe

0

これが最適な方法です。あなたが好きなら、切り捨てるのではなくテーブルを削除して再作成することができます。がんばろう!

2

ではなく、実際のテーブルの名前を変更するには、次の2つのテーブル、A1A2、そしてあなたは、毎日のテーブルに切り替える2つの同義語、ATEMPを持つことができます。

は正直なところ、しかし、私は、テーブルの名前を変更することは、おそらく行くにはちょうどとして有効な方法ですが、あなたはそれを行うことができる他の方法を求めているので、私は、チップと思ったと思います。

関連する問題