web-dev-qa-db-ja.com

Oracle:グローバル一時テーブルを通常のテーブルに、またはその逆に変更する

私たちのコードは、オプション 'COMMIT DELETE ROWS'を使用するグローバル一時テーブルを利用しています。うまく機能し、期待どおりに仕事をします。しかし、自動化されたテストを実行するとき、セッション中に行を永続化し、セッションが終了した後もその理由を維持したいと考えています。

テストを開始する前にテーブルを通常のテーブルに変更し、テスト後に一時テーブルに戻すことはできますか?

テストスイートではテーブルを削除して再作成できますが、テストスイートではテーブルのDDLを知っている必要があります。これは避けたいです。テストコードでは、1つの列をフェッチするだけで済みます。時間の経過とともに列が追加され、オプションが変更された場合、テストコードは、テーブルの性質のみを変更できる場合、その変更に耐えます。

2
Hans Deragon

いいえ、GTTから通常のテーブルに変更することはできません。ただし、情報を保持するために、セッション固有のデータをコピーする別のテーブルを作成することもできます。

GTTの詳細

3
unleashed