日期:2014-05-17  浏览次数:21591 次

通过 pl/sql developer 工具通过DBLINK去查询一个表。为什么commit,rollback按钮会被激活。
通过 pl/sql developer 工具通过DBLINK去查询一个表。为什么commit,rollback按钮会被激活。怎么去解决呢?

------解决方案--------------------
这个是因为 DBLINK 会起一个新的事务处理的。 所以哪怕你是SELECT ROLLBACK和COMMIT都会亮的。 
每次使用db_link查询时释放连接,调用dbms_session包中的关闭函数即可
    例:dbms_session.close_database_link(CONN_MY_LINK);
      或使用dblink的时候,即使是select文也要进行commit,或者是rollback,
      否则时间长了会阻碍其他进程。


------解决方案--------------------
引用:
引用:这个是因为 DBLINK 会起一个新的事务处理的。 所以哪怕你是SELECT ROLLBACK和COMMIT都会亮的。 
每次使用db_link查询时释放连接,调用dbms_session包中的关闭函数即可
    例:dbms_session.close_database_link(CONN_MY_LINK);
   ……


是本地数据库的事务

加上set transaction read only;
------解决方案--------------------
  如果使用dblink,我们需要及时显示的关闭dblink。以下提供两种方式,因为并不会在你建立的以后就自动的关闭和远程服务器建立的session,如果session太多,会0.+造成查询失败


alter session close database link <dblink_name>;


dbms_session.close_database_link(<dblink_name>);
------解决方案--------------------
引用:
引用:如果使用dblink,我们需要及时显示的关闭dblink。以下提供两种方式,因为并不会在你建立的以后就自动的关闭和远程服务器建立的session,如果session太多,会0.+造成查询失败


alter session close database link <dblink_name>;


dbms_se……


你的程序是JAVA或者其他,不都一样,可以写个存储过程,然后用动态sql实现5楼的显示关闭
------解决方案--------------------
谢谢各位,学习了。以前也知道有这个问题,一直没有在意。
------解决方案--------------------
你们说的是应该是9i下才存在的把?? 10g下存在这个问题不