文档解释
ORA-06511: PL/SQL: cursor already open
Cause: An attempt was made to open a cursor that was already open.
Action: Close cursor first before reopening.
这是由于某一程序单元引发的一个常见错误,当程序运行期间,你反复地打开同一个光标,造成重复操作而衍生出的错误。
官方解释
ORA-06511 消息是由 Oracle 数据库服务器针对 PL/SQL 光标操作的运行时错误,其内容是指由于光标已经打开,当前的程序试图再次打开相同的光标时,会引发该错误。
常见案例
一般情况下,收到此错误的情况下,主要是由于对光标的不当处理,所以此错误非常常见。比如,在程序中反复打开同一个光标,而没有释放掉上一次打开的光标,就会引发此讯息。
正常处理方法及步骤
1. 将出现问题的语句定位出来;
2. 弄清楚报错发生的情景;
3. 仔细检查光标的操作中,是否有重复打开同一个光标的情况;
4. 若发现重复打开,便将原先打开但没有关闭的光标,关闭掉或者改变程序逻辑;
5. 运行程序。