我可以使用
吗?CREATE LOCAL TEMPORARY TABLE table_name();
[或类似] .....,而不是
CREATE GLOBAL TEMPORARY TABLE table_name();
创建oracle存储过程时。保存全局临时表创建的空间,或建议任何其他方式。
答案 0 :(得分:0)
您没有提到您使用的数据库版本。如果它是18c,那么您可以创建一个基于内存的私有临时表,并在事务或会话结束时删除(取决于您创建它的方式):{{1 }或ON COMMIT PRESERVE DEFINITION
。
如果它是较低版本,那么如果您真的需要临时表,那么全局临时表是唯一的选项。
另一个选择是创建一个“普通”表,使用它,在完成你的操作后截断。
然而,也许最好的问题是:你真的需要临时表吗?如果您的背景是使用它们的MS SQL Server,那么尝试切换到Oracle-ish生活方式,大部分时间没有临时表。实际上,这取决于你想做什么。如果你能解释一下,有人可能会提出一个好方法。