Oracle--dblink使用

一、介绍

1、dblink是什么?

  Database Link(dblink)是一个数据库中的模式对象,它允许用户访问另一个数据库中的对象。另一个数据库不需要是Oracle数据库系统。但是,要访问非Oracle系统,必须使用Oracle异构服务。

2、dblink有什么用

  在创建dblink之后,用户可以在SQL语句中使用它,通过将@dblink应用到表、视图或PL/SQL对象名中,来引用其他数据库中的表、视图和PL/SQL对象、使用SELECT语句在另一个数据库中查询一个表或视图、使用任何插入、更新、删除或锁表语句访问远程表和视图。

二、oracle用户间建立dblink

1、SQL语句方式

前置条件

创建dblink前,当前用户必须具备create database link权限,并且具有连接目标库的create session 权限。此外,要保证Oracle net在本地和远程主机上都已安装并正常运行。

赋权时,需要提前联系管理员以dba用户赋予该权限,语句如下:

grant create database link to 用户名;

(1)创建:

CREATE [PUBLIC] DATABASE LINK 自定义DBLINK名称    /*PUBLIC为可选项,创建全局dblink时使用*/
CONNECT TO 数据库用户名 IDENTIFIED BY 密码 
USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 目标主机名)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = 服务名)))'

注意:(1)创建全局dblink需要有对应权限,权限查看与赋权方法如下:

SELECT * FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%');
GRANT CREATE PUBLIC DATABASE LINK TO DB_USERNAME;

  (2)创建dblink也可以使用客户端工具在图形界面下配置,如plsql、toad等。

  (3)dblink默认是创建private类型,对当前用户有效。若对所有用户有效,需要加public参数。具体内容可参看oracle官方的 SQL Language Reference中相关章节

(2)使用

  增删查改等操作和本地数据库基本一致,只需将表名更换为“表名@DBLINK名称”

SELECT XXX FROM 表名称@DBLINK名称

 

(3)删除DBLINK

DROP [PUBLIC] DATABASE LINK DBLINK名称 ;

 

参考:

CREATE DATABASE LINK  https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/CREATE-DATABASE-LINK.html#GUID-D966642A-B19E-449D-9968-1121AF06D793

Oracle dblink详解(原创) - CzmMiao的博客生活 - ITeye博客  http://czmmiao.iteye.com/blog/1236562

 

posted @ 2017-06-11 16:07  VNX  阅读(1533)  评论(1编辑  收藏  举报