【问题标题】:Oracle global temporary tableOracle 全局临时表
【发布时间】:2016-04-20 10:39:51
【问题描述】:

Oracle 中是否有任何方法可以创建在会话结束后删除的全局临时表?我知道如何在删除行的条件下创建临时表,但这对我来说还不够。

【问题讨论】:

  • 你可以,有点(但必须手动放置),但动态创建对象不是一个好主意。也许你可以解释为什么你认为你需要这样做。如果您来自另一个允许这样做的 DBMS,您可能需要一种不同的 Oracle 方法——也许是子查询分解,也许是集合,也许是其他东西。这实际上取决于您在做什么以及您要解决什么问题。
  • 请解释为什么这对您来说“不够”。您要解决的真正问题是什么?
  • 问题是我创建了许多临时表,以便我可以从中导出数据,一段时间后,我的架构变得充满了不必要的表,称为“temp”、“temp1”等。会如果 Oracle 在 SAS 中有类似“工作库”之类的东西,那就太好了,它在断开连接后会完全消失。

标签: sql oracle temp-tables


【解决方案1】:

这似乎是 Postgres 的方式。不幸的是,这在 Oracle 中是不可能的。尝试使用PL/SQL Collections and Records

【讨论】:

  • 为什么“不幸”?保留全局临时表(即临时数据)这一事实是一项功能。
  • 例如:当您有创建新永久对象(表和类型)的限制时。在这种情况下,您将使用集合,而无需通过 SQL 访问:from table(collection)。真的很不方便。
  • 为什么会限制创建新的永久对象?这是对你施加愚蠢限制的人的问题,而不是 Oracle 设计 GTT 的方式的问题。
猜你喜欢
  • 2017-10-02
  • 2023-03-27
  • 2016-04-02
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 2015-12-02
相关资源
最近更新 更多