在数据库执行一个for循环的存储过程
比如loop,100万行提交一次。
for i in 1..100 loop
update table
commit
end loop
为什么在提交了1200万行后,第13次循环报错:
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
然后我再执行,只循环了一次,提交了100万行就报错了。
我以前的对概念的理解是commit以后,新的循环应该可以占用旧的undo空间(虽然没达到undo retention的超时时间)
我本以为按这样提交不会有undo方面的报错。
不知道我的理解错在哪里,除了扩展表空间是否有其他解决途径?
谢谢各位。