我可以使用“CREATE LOCAL TEMPORARY TABLE table_name();” [或类似](or​​acle存储过程)

时间:2018-06-08 12:39:49

标签: oracle11g

我可以使用

吗?
CREATE LOCAL TEMPORARY TABLE table_name();

[或类似] .....,而不是

CREATE GLOBAL TEMPORARY TABLE table_name();

创建oracle存储过程时。保存全局临时表创建的空间,或建议任何其他方式。

1 个答案:

答案 0 :(得分:0)

您没有提到您使用的数据库版本。如果它是18c,那么您可以创建一个基于内存的私有临时表,并在事务或会话结束时删除(取决于您创建它的方式):{{1 }或ON COMMIT PRESERVE DEFINITION

如果它是较低版本,那么如果您真的需要临时表,那么全局临时表是唯一的选项。

另一个选择是创建一个“普通”表,使用它,在完成你的操作后截断。

然而,也许最好的问题是:你真的需要临时表吗?如果您的背景是使用它们的MS SQL Server,那么尝试切换到Oracle-ish生活方式,大部分时间没有临时表。实际上,这取决于你想做什么。如果你能解释一下,有人可能会提出一个好方法。