Oracle11g 我可以用“吗?”;创建本地临时表TABLE_name()&引用;[或类似](oracle存储过程)

Oracle11g 我可以用“吗?”;创建本地临时表TABLE_name()&引用;[或类似](oracle存储过程),oracle11g,Oracle11g,我能用吗 CREATE LOCAL TEMPORARY TABLE table_name(); [或类似]……,而不是 CREATE GLOBAL TEMPORARY TABLE table_name(); 创建oracle存储过程时。保存全局临时表创建的空间,或建议任何其他可能的方法。您没有提到您使用的数据库版本。如果是18c,则可以创建基于内存的私有临时表,并在事务或会话结束时删除(取决于创建方式):在提交时保留定义或在提交时删除定义 如果是较低版本,那么如果确实需要临时表,则全局临时表

我能用吗

CREATE LOCAL TEMPORARY TABLE table_name();
[或类似]……,而不是

CREATE GLOBAL TEMPORARY TABLE table_name();

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

您没有提到您使用的数据库版本。如果是18c,则可以创建基于内存的私有临时表,并在事务或会话结束时删除(取决于创建方式):
在提交时保留定义
在提交时删除定义

如果是较低版本,那么如果确实需要临时表,则全局临时表是唯一的选项

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


然而,也许最好的问题是:你真的需要一张临时桌子吗?如果您的背景是MS SQL Server,并且经常使用它们,那么请尝试切换到Oracle式的生活方式,大多数情况下不使用临时表。实际上,这取决于你想做什么。如果你能解释一下,可能有人会建议一个好的方法。

数据库中将存在一个全局临时表,在你将数据放入其中之前,它只占用很少的空间。该数据将是会话的本地数据。分配给空临时表的资源最少,所以您真正想要完成什么?