我有一个托管多个不同数据库的Oracle实例,我想在所有实例中查询,因为其他一些数据库包含相关信息。如何设置查询以连接到作为SELECT语句的一部分的多个实例..
如果有帮助,我正在使用Oracle SQL Developer。
答案 0 :(得分:1)
在Oracle 12.1之前,Oracle实例和Oracle数据库之间的关系是1比1.单个实例最多可容纳1个数据库,但单个服务器可以容纳多个实例。但是,单个数据库将具有多个模式,每个模式可以单独或协作地托管一个或多个数据库应用程序。
可以通过数据库链接从一个Oracle实例访问另一个实例。数据库链接可以是公共链接或私有链接,可以使用与此类似的命令(other options exist)创建:
CREATE [PUBLIC] DATABASE LINK LINK_NAME
CONNECT TO SOME_SCHEMA
IDENTIFIED BY SOME_PASSWORD
USING 'SOME_SERVICE_NAME';
这样的数据库链接将用于引用远程实例中的数据库对象,方法是将链接名称附加到带有(@
)符号的对象引用,例如:
SELECT * FROM [SCHEMA.]TABLE_NAME@LINK_NAME;
如果与DB链接关联的远程模式(上面的create db link语句中的SOME_SCHEMA
)具有从引用的远程模式中进行选择的足够权限,则上述select将返回数据。