Oracle学习(五)DBLINK
一、DBLINK学习
目的:为了解决跨库访问的需求。
场景如下:tnsnames.ora(oracle的库配置文件)下配置了2个库的环境地址,现在要实现跨库访问。
PS:DBLINK和是否同一个主机无关,只要跨库,不管2个库是不是在一台主机上,都要使用DBLINK进行通信(前提条件:两个库端口要通,可以使用telnet命令来测试)
第一步:赋予权限
--在创建database link(DBLINK)之前需要判断,登陆的用户是否具备创建database link 的权限
PS:注意,此时登陆的账号是需要创建dblink的账号(用这个库去调用其他库) -- 1、查看当前登陆的账号是否具备创建database link 权限 select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='当前登陆的账号'; PS:如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为当前登陆的账号赋予创建权限 -- 2、给当前登陆的账号授予创建dblink的权限 grant create public database link to '当前登陆的账号'; -- 3、 再次执行第一条查看是否具备权限的sql语句,会发现有返回行,表示,当前登陆的账号已经具备创建database link的权限 select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='当前登陆的账号';
第二步:创建dblink
方式1:pl/sql developer 图形化创建
方式2:sql语句创建
-- 1、注意一点,如果密码是数字开头,用“”括起来 CREATE PUBLIC DATABASE LINK DBLINK名称 CONNECT TO 当前登陆账号 IDENTIFIED BY "密码" USING '连接的数据库' --例: CREATE PUBLIC DATABASE LINK TESTDBLINK CONNECT TO ZHANGHAO IDENTIFIED BY "123456" USING 'TESTDATABASE' -- 2、sql中直接写入库配置 CREATE DATABASE LINK DBLINK名称 CONNECT TO 当前登陆账号 IDENTIFIED BY "密码" USING ' (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = XXX.XXX.XXX) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = XXXX) ) ) ';
第三步:操作
四、创建同义词(简化操作)
-- 创建同义词 create synonym TESTSYNONYM(同义词) FOR company@TESTLINK1;
PS:创建同义词以后,查询、插入、修改、删除中可直接用 TESTSYNONYM 代替company@TESTLINK1,例如查询语句可改成如下方式(插入,修改,删除类似):
SELECT * FROM TESTSYNONYM(同义词) order by id -- 查询ORCL2中WANGYONG用户的表COMPANY
参考资料:
- Oracle DBLINK 简单使用(特此感谢!)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律