2017-08-09 2 views
0

Oracleのグローバル・テンポラリ・テーブルをPRESERVE ROWSからDELETE ROWSに変更することはできますか?グローバル・テンポラリ・テーブルのテーブルを変更する(削除しないで保存する)

次のコマンドを試したところ、構文エラーが発生しました。可能であれば、正しい構文は何ですか?

ALTER TABLE BLOCKING_RESULTS ON COMMIT DELETE ROWS 

SQL Error: ORA-01735: invalid ALTER TABLE option 01735. 00000 - "invalid ALTER TABLE option"

答えて

3

ことはできません。 The valid syntax is documentedであり、これを変更する機能は含まれていません。これを変更できない場合は、one of the restrictions for GTTsと明示的にはリストされていませんが、他のタイプのテーブルで許可されているもののみを参照します。

新しいon commit句を使用してテーブルを削除してから再作成する必要があります。

Tom Kyteさんがway back in 2003に簡潔なコメントをしました。

(私ははそれがtable locks are not acquired on temporary tables.がいることを声明に関連するかもしれないとを推測するのだ、それはあなたがそれが問題にされることなく、列を追加することができますどのようにかかわらず、興味深いですセッションがGTT内のデータを持っていながら、保存を変更すると、奇妙な場合がありますステップ7で、この例/記事によると、とにかく副作用が...)

+0

ありがとうございます。別の名前のテーブルを使用するように変更し、後で使用しなくなったときにもう一方のテーブルを削除することは、私にとって実行可能なオプションになります。 – AHungerArtist

-1

構文が間違っています。 PL/SQLのalter table構文を試してください。

関連する問題