更改全局临时表上的表(保留以删除)

时间:2017-08-09 16:37:57

标签: database oracle temp-tables alter-table

是否可以将Oracle中的全局临时表从PRESERVE ROWS更改为DELETE ROWS?

我尝试了以下命令,但语法错误。如果可能,正确的语法是什么?

ALTER TABLE BLOCKING_RESULTS ON COMMIT DELETE ROWS
  

SQL错误:ORA-01735:ALTER TABLE选项无效   01735. 00000 - "无效的ALTER TABLE选项"

3 个答案:

答案 0 :(得分:4)

这是不可能的。 rename_axis,但不包括更改此功能的能力。无法更改此内容未明确列为The valid syntax is documented,但仅指其他类型的表所允许的内容。

您必须使用新的on commit子句删除并重新创建表。

Tom Kyte对此one of the restrictions for GTTs做了简明扼要的评论。

(我推测它可能与way back in 2003的语句有关;虽然它如何让你添加列而不是一个问题很有趣。改变会话时的保存有GTT的数据可能有奇怪的副作用......)

答案 1 :(得分:1)

根据步骤7中的这个例子/文章:

- 您无法更改临时表以更改其数据持续时间。

- 你必须放弃并创造它。

http://oracle-plsql-tech.blogspot.com.tr/2013/03/temporary-tables.html

如果你的情况相同。

答案 2 :(得分:-1)

您使用的

语法错误。尝试PL / SQL alter table语法。