ORACLE中的DBLINK概念及使用DBLINK对远程数据库的连接
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
create database link dblink_name connect to username identified by "password" using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.1.18 )(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))';
创建公共的DBLink
create public database link dblink_name connect to username identified by "password" using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.1.18 )(PORT = 1521))) (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;
原文链接:https://blog.csdn.net/naruto0025/article/details/79075041?utm_source=blogxgwz9

您的资助是我最大的动力!
金额随意,欢迎来赏!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-09-02 CenOs7安装oracle图文详细过程(02)
2019-09-02 CentOS: 网络连接故障排除
2019-09-02 yum grouplist 安装gnome桌面环境
2019-09-02 centos图形界面的开启和关闭