Oracle 會話級Session誤解
Oracle会话级临时表定义如下:
会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。
1 误解一
不知道会话什么时候结束,以为是OracleConnection.Close()时会话就结束。
实际操作过程如下:
第一步,创建一个会话级的临时表
第二步,通过程序将另一个DB的数据,插入到当前的DB;调用存储过程,处理数据。处理完后,用SELECT语句,查询数据,并显示在页面上。
实际结果:
在一个网页窗口,做完第二步后。又打开第二个窗口,做第二步。发现数量成倍增长,临时表的数据没有清空。
解决方法:
在INSERT到临时表数据前,truncate 临时表(EXECUTE IMMEDIATE 'TRUNCATE TABLE MY_TEST_TEMP';),这样旧的数据清掉了,而且处理后数据可以再显示在页面上。
学习资源
ORACLE Temporary Tables临时表更适合做插入和查询操作
(http://space.itpub.net/8570952/viewspace-207199#xspace-tracks)
(http://www.cnblogs.com/zqmingok/archive/2009/12/17/1626667.html)
(http://www.cnblogs.com/zqmingok/archive/2009/12/17/1626673.html)
人的一生应该这样度过:当他回首往事的时候,不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧。