首页 > 代码库 > 使用Oracle基于session的临时表要注意的问题

使用Oracle基于session的临时表要注意的问题

   在Oracle中有两种临时表,一种是基于session,就是当出现commit之后,数据就会被清空;一种是基于session,当session断开后,数据会被清空。

--基于事务的临时表

create global temporary table test
(
  ID   number
)
on commit delete rows;


--基于session的临时表
create global temporary table test
(
  ID   number
)

on commit preserve rows;

   如果你的系统架构是三次架构,有连接池概念的,如  weblogic+oracle这种架构,其实session是不会退出的,只是请求完毕后,将session还给连接池。如果你操作基于session的临时表,每次操作完表后不做删除操作。那数据会一直累积。最好的做法是使用完以后truncate,今天在测试环境上使用系统测试发现的问题。

使用Oracle基于session的临时表要注意的问题