使用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,今天在测试环境上使用系统测试发现的问题。

相关推荐