2017-08-09 102 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,並且不包括改變它的能力。不能改變這一點並沒有明確列出,只是指其他類型的表所允許的內容。

您必須使用新的on commit子句刪除並重新創建該表。

Tom Kyte對此way back in 2003發表了簡潔的評論。

(我推測,這可能與該語句table locks are not acquired on temporary tables.;雖然它是如何讓你添加列而沒有作爲一個問題是有趣的改變,同時保存會話已在GTT數據可能有奇副作用反正...)

+0

謝謝。更改爲使用不同名稱的表格,然後在不再使用時刪除另一個表格,這對我來說是一個可行的選擇。 – AHungerArtist

-1

您使用的語法是錯誤的。嘗試使用PL/SQL alter table語法。