故事背景:
我们项目有3个环境,dat,uat,vir,Oracle数据库部署在3太服务器上,需要经常切换连接、切库查找问题
通常我们的做法是在pl/sql左上角小钥匙那切换常用连接
最近发现一个问题:
当前登录是dat环境,脚本在dat查询没有数据,明确的是uat库是有的,切完连接之后查询也没有,其他脚本的查询结果也是dat库的数据,新启一个查询窗口就好了
原因:
PL/SQL默认是开启支持多连接的,
解决:
工具-》首选项-》Oracle - 》连接
原理:
百度上说这个问题的很少,这个博主讲的很好
https://www.cnblogs.com/edong/p/4189167.html
PL/SQL在多连接情况下有个主连接的概念,
当我们登录或者从小钥匙那切换连接时,就切换了当前主连接,主连接可以从会话查看
会话-》设定主连接-》最近-》黑色加粗的是当前主连接
我们新建查询窗口,都是与当前主连接建立会话,也就是脚本查询的都是当前主连接的数据库服务器
在选中支持多连接的情况下,已经打开的窗口还保持这原来的连接,
也就是说,我在dat的连接时打开一个查询窗口1,这时切换uat连接,窗口1还保持dat的连接,查询的还是dat服务器上的数据库
勾掉支持多连接时,不存在多连接的概念,当前连接是哪个服务器,所有查询窗口都是一个连接,查一个库
tip:
多连接情况下,每个查询窗口可以单独设置哪个连接
意外:
同事都在吐槽,然后勾掉支持多连接解决
其实我觉这个功能还挺好用的,我们需要经常查三个环境,正好就可以开三个窗口,分别连接不同服务器,一个窗口负责一个数据库,完美~~
自己注意一下窗口底部,当前是哪个库,别混淆了