是否可以将Oracle中的全局临时表从PRESERVE ROWS更改为DELETE ROWS?
我尝试了以下命令,但语法错误。如果可能,正确的语法是什么?
ALTER TABLE BLOCKING_RESULTS ON COMMIT DELETE ROWS
SQL错误:ORA-01735:ALTER TABLE选项无效 01735. 00000 - "无效的ALTER TABLE选项"
答案 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语法。