2017-08-09 140 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语法。