我正在使用Oracle SQL Developer 4.02.15.21版本.
我需要编写一个访问多个数据库的查询.我要做的就是获取每个数据库中“ TableX”中存在的所有ID的列表(这些数据库中的每个数据库中都有一个Table1实例,但是具有不同的值),并将所有结果合并到一起一个大清单.
我的问题来自访问4个以上的数据库-我收到此错误:ORA-02020:使用的数据库链接过多.我无法更改INIT.ORA文件的open_links最大限制.
因此,我尝试动态打开/关闭这些链接:
SELECT Local.PUID FROM TableX Local
UNION ALL
----
SELECT Xdb1.PUID FROM TableX@db1 Xdb1;
ALTER SESSION CLOSE DATABASE LINK db1
UNION ALL
----
SELECT Xdb2.PUID FROM TableX@db2 Xdb2;
ALTER SESSION CLOSE DATABASE LINK db2
UNION ALL
----
SELECT Xdb3.PUID FROM TableX@db3 Xdb3;
ALTER SESSION CLOSE DATABASE LINK db3
UNION ALL
----
SELECT Xdb4.PUID FROM TableX@db4 Xdb4;
ALTER SESSION CLOSE DATABASE LINK db4
UNION ALL
----
SELECT Xdb5.PUID FROM TableX@db5 Xdb5;
ALTER SESSION CLOSE DATABASE LINK db5
但是,这会产生“ ORA-02081:数据库链接未打开”.最后关闭哪个数据库.
有人可以建议上述方法的替代方案或调整方案吗?
如果可能,请提供少量建议,并提供语法正确的SQL.