0

我正在尝试删除数据库链接,但出现此错误“同名的数据库链接具有打开的连接”

删除数据库链接“dbl_prod1”
错误报告 -
ORA-02018: 同名的数据库链接具有打开的连接
02018. 00000 - “同名的数据库链接有一个打开的连接”
*原因:    
*行动:
4

1 回答 1

1

您不能删除与另一个数据库具有活动/打开连接的数据库链接。您必须先明确关闭连接。此博客文章中描述了该过程:https ://odenysenko.wordpress.com/2017/03/09/explicitly-closing-oracle-database-link/

使用以下方法之一显式关闭打开的链接:

  1. ALTER SESSION CLOSE DATABASE LINK my_db_link;
  2. 执行 DBMS_SESSION.CLOSE_DATABASE_LINK('my_db_link');

要成功关闭 [a] 数据库链接:

  • [的]数据库链接[必须]先打开,否则你会得到ORA-02081:数据库链接未打开
  • 所有来自您的会话的分布式事务 [起源],使用此特定数据库链接,必须提交或回滚,否则您将收到 ORA-02080:数据库链接正在使用中
  • 通过这个特定的数据库链接 [使用] 远程对象的所有游标必须首先关闭,否则您将得到 ORA-02080: database link is in use

要检查当前是否使用 [a] DB 链接(具有打开的事务和/或打开的游标),可以使用 [the] 下一条 SQL 语句:

     select db_link, logged_on, open_cursors, in_transaction 
       from v$dblink
      where db_link like 'my_db_link';

参考:

1034343.6 如何关闭远程连接

链接关闭后,您应该可以删除它。

于 2020-06-22T02:50:23.263 回答