2016-04-20 69 views
0

Oracle有什么方法可以创建一个全局临时表,并在会话结束后被删除?我知道如何创建临时表,条件是行被删除,但对我来说是不够的。Oracle全球临时表

+2

你可以,但(它必须是手动的),但它不是一个好主意,即时创建对象。也许你可以解释为什么你认为你需要这样做。如果你来自另一个支持这种方法的DBMS,则可能需要针对Oracle的另一种方法 - 可能是子查询因子分解,也可能是集合,也可能是其他方法。这真的取决于你在做什么以及你想要解决什么问题。 –

+1

请解释为什么这对你来说“不够”。你正试图解决的**真正**问题是什么? –

+0

问题是我只创建了很多临时表,以便可以从中导出数据,并且在一段时间后,我的模式变得充满了称为“temp”,“temp1”等的不必要的表。如果Oracle有类似的东西SAS中的“工作库”在断开连接后完全消失。 –

回答

0

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

+0

为什么这是“不幸”?全局临时表被保留(这是临时数据)是一个特征。 –

+0

举个例子:当你有创建新的永久对象(表&&类型)的限制时。在这种情况下,您将使用集合,而不用SQL访问:**来自表(集合)**。这真的很不方便。 – saphsys

+0

为什么你会限制创建新的永久物件?对于那些对你施加愚蠢限制的人来说,这是个问题,而不是Oracle设计GTT的方式。 –