2

我在 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 错误:ORA-02080:数据库链接正在使用 02080。00000 -“数据库链接正在使用”

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

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

事务完成了,但是当我select * from V$DBLINK;看到仍然有一个打开的游标时,我不知道如何关闭那个。

4

1 回答 1

9

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

或者,如果您在首选项中未选中“在新选项卡中显示查询结果”框,则在数据库->工作表下,您可以运行不同的查询,该查询不将链接作为语句引用,这将重用相同的结果选项卡并关闭前一个光标。当然,如果选中该框,那将无济于事。

如果您要放弃它,您实际上并不需要单独的关闭步骤;如果你只是放弃它而不关闭你不需要回滚甚至关闭结果集。

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

于 2015-05-26T15:07:25.080 回答