在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
由于
答案 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
/