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 TableName@数据链名称;

方法二:
在目前绝大部分数据库有分布式查询的需要。下面简单的介绍如何在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 tabname@dcmdb where 1=1;
 
(可以为tabname@dcmdb创建同义词)
 
复制表数据:
 

复制代码代码示例:

insert into 表名(字段名) (SELECT 字段名 FROM TableName@数据链名称);
--------------------------------------------------------
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跨库查询的实例介绍,希望对大家有所帮助。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''

oracle使用dblink跨库查询的例子 - HelloWorld