没人能讲解一下吗?
实际中是这样一个例子,在java的一个应用程序中,大约有几千行要更新的程序,需要先查出来一行数据,然后马上根据这行数据的信息更新该行数据,(一个select然后一个update),整个更新在一个事务中完成。
当preparestatement定义后,同时使用在select然后用同一个preparestatemennt再调用update语句时,很快maxsize open cursors错误。此时观察v$open_cursor中全部都是(大多)select,没有update,不知道为什么?????(做完一行关闭一次preparestatement)
后来做了一些更改尝试,将select和udpate使用了两个preparestatement,也是使用一次关闭一次,就没有发生maxsize open cursor现象。
谁能帮我解释一下这个现象的原因???