Oracle中的临时表就像SQL Server一样

时间:2012-08-16 14:15:04

标签: oracle oracle10g oracle11g temp-tables

在SQL Server中,可以执行以下操作

declare @t as table(id int)

insert into @t values(1)
insert into @t values(2)

delete from @t where id=1

在没有创建物理表的情况下,Oracle中是否存在这种等价物。现在,我曾经创建物理表来执行此操作并稍后删除。

我已经转到此链接How to create a temporary table in Oracle但是2010年和the reference link提到了Oracle 8i。这仍然是Oracle 10g和11g的情况吗?我访问过的另一个链接是Constructing a temporary table in Oracle SQL

由于

3 个答案:

答案 0 :(得分:1)

CREATE GLOBAL TEMPORARY TABLE admin_work_area         (开始日期,          结束日期,          CHAR CHAR(20))       ON COMMIT DELETE ROWS;

此语句创建一个特定于事务的临时表。 有关详细信息,请使用以下链接:

http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables003.htm#i1006400

答案 1 :(得分:1)

在大多数情况下,您不需要它。在Oracle中,当您需要临时表时,“您的设计是错误的”。不要试图将MS SQL模式重写为Oracle的确切措辞。在MS SQL中使用临时表的地方,您在Oracle CTE(嵌套子查询,查询因子分解)中使用CURSOR或某些PL / SQL结构。

临时表不是您需要的。它只是您用来实现某个目标的工具。在Oracle中,您应该使用其他工具。

答案 2 :(得分:0)

使用关联数组:)

declare
type temp_rec is record(v integer);
type temp_table is table of temp_rev indexed by pls_integer;

my_temp_table temp_table;

begin
  -- Here you can do do your stuff :)
end
/