我在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;
当我试图关闭数据库链接时,我得到一个错误:
SQL Error: ORA-02080: database link is in use02080. 00000 - "数据库链接正在使用中"
*原因:事务处于活动状态或数据库链路上有游标打开在alter session close database link命令中给出。
*动作:提交或回滚,关闭所有游标
事务已经完成,但是当我执行select * from V$DBLINK;
时,我看到仍然有一个打开的游标,但我不知道如何关闭该游标。
只要打开SQL Developer "Query Results"选项卡,光标就保持打开状态,即使滚动到结果集的末尾也是如此。如果您关闭该选项卡,光标将被释放,您将能够关闭并删除数据库链接。
或者如果您在首选项中勾选了"在新选项卡中显示查询结果"框un,在数据库->工作表下,您可以运行不引用链接作为语句的不同查询,这将重用相同的结果选项卡并关闭上一个光标。如果那个方框被选中,那么当然没有帮助。
你真的不需要单独的close步骤,如果你放弃它;如果不关闭而直接删除,则不需要回滚甚至关闭结果集。
如果您将所有命令作为脚本运行(F5),而不是作为单独的语句运行,则不会看到错误;但是您的数据将显示在"脚本输出"窗口中,而不是在"查询结果"数据网格中。