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