我先建了一个临时表TMP_A,是session级别的(on commit preserve rows)我在SP中往这个临时表插入数据做中间计算,然后连续执行两次这个SP(传给它的参数不同)我的疑问是:
1.第一次运行完这个SP以后,临时表会自动清空吗?如果会就没问题了,两次运行SP不会相互影响。
2.但如果不会的话,那第二次执行时临时表里的数据就会重复了,第二次运行的结果就不对了,那有什么办法解决这个问题呢?
1.第一次运行完这个SP以后,临时表会自动清空吗?如果会就没问题了,两次运行SP不会相互影响。
2.但如果不会的话,那第二次执行时临时表里的数据就会重复了,第二次运行的结果就不对了,那有什么办法解决这个问题呢?
而且不是没有其他办法的情况俺一般不会用临时表。
所以我觉得因为运行完第一遍SP后连接不会自动被断开,还是处于同一个session,所以会话级别的临时表就不会自动清空了。不知道有什么办法解决?在SP里面明文清空它吗?(execute immediate 'truncate table tmp_a'?)
然后在你的存储过程中最后加一句commit