在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,今天在测试环境上使用系统测试发现的问题。
时间: 2024-10-14 13:06:32