在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中两种类型的临时表:基于事务的临时表和基于会话的临时表,并详细解释了它们之间的区别及应用场景。特别指出,在使用基于会话的临时表时,如果系统架构包含连接池,则需要注意数据累积的问题。

1701

被折叠的 条评论
为什么被折叠?



