通过 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,
否则时间长了会阻碍其他进程。
------解决方案--------------------
是本地数据库的事务
加上set transaction read only;
------解决方案-------------------- 如果使用dblink,我们需要及时显示的关闭dblink。以下提供两种方式,因为并不会在你建立的以后就自动的关闭和远程服务器建立的session,如果session太多,会0.+造成查询失败
alter session close database link <dblink_name>;
dbms_session.close_database_link(<dblink_name>);
------解决方案--------------------
你的程序是JAVA或者其他,不都一样,可以写个存储过程,然后用动态sql实现5楼的显示关闭
------解决方案--------------------谢谢各位,学习了。以前也知道有这个问题,一直没有在意。
------解决方案--------------------你们说的是应该是9i下才存在的把?? 10g下存在这个问题不