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

oracle查询其它实例
oracle中在当前实例中,如何查询其它实例中表数据呢?

------解决方案--------------------
引用:
Quote: 引用:

dblink就是解决这类问题的。建立一个dblink,然后操作就像在一个数据库中了


我是想   想做两个实例之间数据联合查询  比如   select   a.*,b.* from  实例a中表1  a,实例b中表1 b where  a.c=b.c

dblink就是干这事的,可以的,你百度一下dblink怎么建立,plsql developer中可以图形化建立。
------解决方案--------------------
1、已经配置本地服务
以下是引用片段:
create public database?
link fwq12 connect to fzept?
identified by neu using 'fjept'?
CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘本地配置的数据的实例名’;
2、未配置本地服务
以下是引用片段:
create database link linkfwq?
connect to fzept identified by neu?
using '(DESCRIPTION =?
(ADDRESS_LIST =?
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))?
)?
(CONNECT_DATA =?
(SERVICE_NAME = fjept)?
)?
)';?

删除dblink:DROP PUBLIC DATABASE LINK linkfwq。
如果创建全局dblink,必须使用systm或sys用户,在database前加public。


db link 有3种类型,我这里只讨论其中两种,connected user和fixed user。
connected user,简单来说,连接方数据库以connected的用户来连接远程数据库。
fixed user,简单来说,连接方数据库以fixed(指定的)用户来连接远程数据库。

创建connected? user的db link语法:
create databas link foo connect to scott identified by tiger using 'BEJING' ;
创建fixed user的db link语法:
create databas link foo using 'BEJING' ;