ORACLE使用DBLINK连接远程数据库

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/naruto0025/article/details/79075041

database link概述

database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。

database link分类

1.Private

Owner:创建database link的user拥有该database link

描述:在本地数据库的特定的schema下建立的database link。只有建立该database link的schema的session能使用这个database link来访问远程的数据库。

同时也只有Owner能删除它自己的private database link。

2.Public

Owner:PUBLIC

描述:Public的database link是数据库级的,本地数据库中所有的拥有数据库访问权限的用户或pl/sql程序都能使用此database link来访问相应的远程数据库。

3.Global

Owner:PUBLIC

描述:Global的database link是网络级的,当Oracle网络使用目录服务器时,目录服务器会自动为网络中的每个Oracle数据库创建和管理Global database link(作为网络服务名)。

任何数据库中的用户和pl/sql子程序都可以使用全局链接访问相应的远程数据库中的对象。

注意:在Oracle数据库的早期版本中,一个Global database link引用了一个database link,该链接是在Oracle名称服务器上注册的。

Oracle名称服务器的使用已经被弃用。在这个文档中,全局数据库链接指的是来自目录服务器的网络服务名的使用。

创建dblink所需的权限

CREATEDATABASE LINK 本地数据库 创建一个私有的DBLink

CREATEPUBLIC DATABASE LINK 本地数据库 创建一个共有的DBLink

CREATESESSION 远程数据库 创建一个任意类型的DBLink

database link创建语法

CREATE [SHARED][PUBLIC] database link link_name

[CONNECT TO [user][current_user] IDENTIFIED BY password]

[AUTHENTICATED BY user IDENTIFIED BY password]

[USING 'connect_string']

简要说明:

connectstring:连接字符串,tnsnames.ora中定义远程数据库的连接串,也可以在创建dblink的时候直接指定。

username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库

使用实例:

创建私有的DBLink


 
 
  1. create database link dblink_name
  2. connect to username identified by "password"
  3. using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)
  4. (HOST = 192.168.1.18 )(PORT = 1521)))
  5. (CONNECT_DATA = (SERVICE_NAME = orcl)))';
创建公共的DBLink


 
 
  1. create public database link dblink_name
  2. connect to username identified by "password"
  3. using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)
  4. (HOST = 192.168.1.18 )(PORT = 1521)))
  5. (CONNECT_DATA = (SERVICE_NAME = orcl)))';
database link的使用

最简单的用法

SELECT* FROM table_name@dblink_name;

包装dblink_name名称

CREATE SYNONYM table_name FOR table_name@dblink_name;

SELECT * FROM table_name;

建立一个视图来封装

CREATE VIEW table_name AS SELECT * FROM table_name@dblink_name;

database link删除

删除public类型的database link

DROP PUBLIC database link dblink_name;

删除非public类型的database link

注意:只有owner自己能删除自己的非public类型database link

DROP database link dblink_name;

查询database link

select * from dba_db_links;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值