oracle使用dblink跨库查询的例子

本文介绍了oracle数据库使用dblink进行跨库查询的方法,oracle dblink跨库查询教程,需要的朋友参考下。

oracle dblink跨库查询
 
方法一:
首先,创建数据库链接:

复制代码代码示例:

CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆用户名 IDENTIFIED BY 密码 USING ‘(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracle服务器的IP地址)(PORT = 端口号))
     )
     (CONNECT_DATA =
(SERVICE_NAME = 对方Oracle服务器服务名)
     )
)‘

其中 数据链名称 为添加到本地Oracle数据库控制台(Oracle Enterprise Manager Console)树节点的服务名
要查询对方数据库的表TableName语句如下:

复制代码代码示例:

SELECT 字段名 FROM [email protected]数据链名称;

方法二:
在目前绝大部分数据库有分布式查询的需要。下面简单的介绍如何在oracle中配置实现跨库访问。
比如现在有2个数据库服务器,安装了2个数据库。数据库server A和B。现在来实现在A库中访问B的数据库。
第一步、配置A服务器端的tnsnames.ora文件(TNSNAMES.ORA Network Configuration File),该文件存放的位置为:
$ORACLE_HOME/network/admin/tnsnames.ora
需要在该文件中增加对B库的配置项,格式如下

复制代码代码示例:

ZBCDB3 =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.50.6)(PORT = 1523))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = zbcdb3)
    )
)

若在A库的另外一台客户端来访问B的数据库的话,同时也应该修改客户端的相应的文件。

第二步、在A服务器的一个库中建立B的一个数据的DBLINK。语法如下:(www.jbxue.com 脚本学堂)
create database link dcmdb connect to dcmdb identified by dcmoptr using ‘zbcdb3‘ ;
然后可以实现分布式查询:
select * from [email protected] where 1=1;
 
(可以为[email protected]创建同义词)
 
复制表数据:

复制代码代码示例:

insert into 表名(字段名) (SELECT 字段名 FROM [email protected]数据链名称);
--------------------------------------------------------
select * from user_db_links; --用户 DB Link 
select * from dba_db_links;  --dba DB Link 
select * from v$dblink;      --当前DB Link
Drop database link MYDBLINK1;

如果是相同实例,不同用户,可以用如下方法查询:

复制代码代码示例:

select * from 用户名.表名

以上就是oracle中使用dblink跨库查询的实例介绍,希望对大家有所帮助。

时间: 2024-09-30 06:56:13

oracle使用dblink跨库查询的例子的相关文章

DBLink 跨库查询

背景 随着业务复杂程度的提高.数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至选择不同的数据库类型以满足其业务需求.与此同时,业务的数据被“散落”在各个数据库实例中.如何方便地对这些数据进行汇总查询,已经成为困扰用户的一大问题. 例如,一家电商创业公司,最初的会员.商品.订单数据全部都存放在一个SQLServer实例中.但随着会员数量和交易规模的不断增长,单个SQLServer实例已经支撑不了巨大的业务压力,同时基于成本考虑,将商品和订单表从原来的SQLServer中

Oracle如何实现跨库查询

实现结果:在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中. 二. 实现方法步骤: 1. 创建存储过程 2. 在存储过程中先创建database link 3. 创建成功 4. 从另一个数据库取出数据插入到当前数据库中 5. 任务完成 三. 创建DBLINK的方法: 1. create public database link dblink connect to totalplant ident

Oracle 跨库 查询 复制表数据

在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库. 第一步.配置A服务器端的tnsnames.ora文件(TNSNAMES.ORA Network Configuration File),该文件存放的位置为: $ORACLE_HOME/network/admin/tnsnames.ora 需要在该文件中增加对B库的配置项,格式如下 ZBCDB3

分库分表的几种常见玩法及如何解决跨库查询等问题

在谈论数据库架构和数据库优化的时候,我们经常会听到"分库分表"."分片"."Sharding"-这样的关键词.让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战.让人感到担忧的是,他们系统真的就需要"分库分表"了吗?"分库分表"有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议. 垂直分表 垂直分表在日常开

ACCESS-如何多数据库查询(跨库查询)

测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 =======================================我有两个数据库 A.B 然后我要将两个数据库的两张表组合作为一张表C显示 判断条件是 A数据库的aa表中字段a和B数据库的bb表中字段b相等 并且A数据库的aa表中字段a或B数据库的bb表中字段b等于某个值 示例:sql="select b.filetitle as

SQLServer跨库查询--分布式查询

出处:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html --用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) 在跨库查询时需要启用Ad Hoc Distributed Queries启用Ad Hoc Distri

SqlServer跨库查询

由于业务的拆分,数据库拆分为两种作用: 汇总数据库(Master,头节点数据库), 子节点数据库(Compute Node,计算子节点数据库) 这样,就设计到子节点访问头节点数据库中的某张汇总表,这种表的记录一般在几,到几十万行左右,目前适合做跨库查询. 跨库查询目前分为两种: 通过sp_addlinkedserver建立链接服务器 没有链接服务器时,可以使用openrowset或者opendatasource函数 在部署时,需要在SQLSERVER外围应用配置器中启用OpenRowSet和Op

跨库查询问题.

在本地服务器测试的时候,我使用的是TP框架中的M方法.查询的时候 public function text(){ $mod = M('anta.user','store_'); $info = $mod->where("user_id=127")->select(); var_dump($info);exit; } M方法中M('库名.表名','表前缀'); 是可以查询的. 但是我当我在服务器中进行M方法跨库查询的时候,缺总是报错,显示"boolean false

SQLServer跨库查询--分布式查询[转载]

--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) --导入示例 select * into 表 from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) --创建链接服务器 exec sp_addlinkedserve