如何关闭在数据库链接(ORA-02080)中创建的游标?

Rol*_*and 2 sql oracle database-connection database-link database-cursor

我在Oracle SQL Developer中执行以下步骤(逐步使用F-9):

create database link mydb connect to my_schema identified by mypwd using 'connection1';

select * from users where id = 1;

rollback;
ALTER SESSION CLOSE DATABASE LINK mydb;
drop database link mydb;
Run Code Online (Sandbox Code Playgroud)

我尝试关闭数据库链接时收到错误:

SQL错误:ORA-02080:数据库链接正在使用02080. 00000 - "数据库链接正在使用中"

*原因:事务处于活动状态或者在alter session close database link命令中给出的数据库链接上打开了游标.

*动作:提交或回滚,并关闭所有游标

交易完成了,但是当我这样做时,select * from V$DBLINK;我看到还有一个打开的光标,但我不知道如何关闭那个.

Ale*_*ole 7

只要SQL Developer"查询结果"选项卡打开,光标就会保持打开状态,即使您滚动到结果集的末尾也是如此.如果关闭该选项卡,光标将被释放,您将能够关闭并删除数据库链接.

或者,如果您在首选项中选中"在新选项卡中显示查询结果"框,则在Database-> Worksheet下,您可以运行另一个不将该链接引用为语句的查询,该查询将重用相同的结果选项卡并关闭上一个光标.如果选中该框,那当然不会有帮助.

如果你放弃它,你真的不需要单独的关闭步骤; 如果你只是放弃它而不关闭,你不需要回滚甚至关闭结果集.

如果您将所有命令作为脚本(F5)运行,而不是作为单独的语句运行,则不会看到错误; 但是您的数据将显示在"脚本输出"窗口中,包含其他所有内容,而不是"查询结果"数据网格中.