论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
图数据库
›
Oracle-跨库访问DBLINK
Oracle-跨库访问DBLINK
九天猎人
金牌会员
|
2024-8-3 15:34:10
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
962
|
帖子
962
|
积分
2886
1. DBLINK的先容
Oracle在进行跨库访问时,可以创建DBLINK实现,比如要将UAT的表数据灌入开辟情况,则可以使用UAT库为数据源,通过DBLINK实现将查出的数据灌入开辟库。
简而言之就是在当前数据库中访问另一个数据库中的表中的数据
2. DBLINK的使用简介
2.1 权限问题
要想创建DBLINK,首先要检查当前用户是否具备权限。
SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%');
复制代码
CREATE PUBLIC DATABASE LINK:表示所创建的dblink全部用户都可以使用
CREATE DATABASE LINK:表示所创建的dblink只能是创建者能使用,别的用户不可以使用
DROP PUBLIC DATABASE LINK : 表示所创建的dblink所用用户都可以删除
如果没有以上权限,但是有UNLIMITED TABLESPACE权限,也可以实现DBLINK的创建和删除(实测)。
SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%UNLIMITED TABLESPACE%');
复制代码
如果指定用户没有上面的几个权限,必要通过sys用户(这个充当管理员角色,有很大权限)赋予权限,你必要登陆sys用户,并在sys用户下实行以下语句:
GRANT CREATE PUBLIC DATABASE LINK , DROP PUBLIC DATABASE LINK TO hxapp;
复制代码
用来登录到远程数据库的帐号必须有CREATE SESSION权限
2.2 创建DBLINK
创建时加不加PUBLIC关键字,会影响DBLINK的使用范围,加上PUBLIC关键字则全部用户都可以使用,否则只有当前用户大概更高权限的用户可以使用。
通过pl/sql developer图形化界面创建
等价于
CREATE DATABASE LINK DBLINK_TEST_TO230
CONNECT TO hxapp IDENTIFIED BY hxapp
USING '3.1.11.230/cbsznckdb';
复制代码
如果网络配置文件tnsnames.ora配置了连接信息,则可以使用如下语句实现:
CREATE DATABASE LINK &dblink_name
CONNECT TO &db_name IDENTIFIED BY &db_passwd
USING '&db_sid';
复制代码
如果网络配置文件tnsnames.ora未配置连接信息,则可以使用如下语句实现:
CREATE DATABASE LINK &dblink_name
CONNECT TO &db_name IDENTIFIED BY &db_passwd
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = &ip)
(PORT = 1521)
)
)
(CONNECT_DATA = (SERVICE_NAME = &sid)
)
)';
--例:
CREATE DATABASE LINK &dblink_name
CONNECT TO &db_name IDENTIFIED BY &db_password
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = 3.1.11.230)
(PORT = 1521)
)
)
(CONNECT_DATA = (SERVICE_NAME = cbsznckdb)
)
)';
--简写
CREATE DATABASE LINK DBLINK_TEST_01
CONNECT TO hxapp IDENTIFIED BY hxapp
USING '3.1.11.230/cbsznckdb';
复制代码
创建以后查询效果:
2.3 查询DBLINK
查询当前实例下全部的DBLINK
SELECT * FROM dba_db_links t;
复制代码
查询当前用户下全部的DBLINK
SELECT * FROM user_db_links t;
复制代码
2.4 删除DBLINK
如果创建的是一个public的DBLINK,删除时必要用
DROP PUBLIC DATABASE LINK &dblink_name;
复制代码
如果创建的是一个private的DBLINK,删除时必要用
DROP DATABASE LINK &dblink_name;
复制代码
3. DBLINK实际应用语句举例
--插入语句
INSERT INTO test_01@DBLINK_TEST_01 t
SELECT 'UntifA' FROM dual;
--查询语句
SELECT * FROM test_01@DBLINK_TEST_01 t WHERE t.name = 'UntifA';
--删除语句
DELETE FROM test_01@DBLINK_TEST_01 t WHERE t.name = 'UntifA';
--更新语句
UPDATE test_01@DBLINK_TEST_01 t
SET t.name = 'mengkiD~lufy'
WHERE t.name = 'UntifA';
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
九天猎人
金牌会员
这个人很懒什么都没写!
楼主热帖
C# 使用流读取大型TXT文本文件 ...
从洞察到决策,一文解读标签画像体系建 ...
袋鼠云平台代码规范化编译部署的提效性 ...
Flink的API分层、架构与组件原理、并行 ...
打穿你的内网之三层内网渗透 ...
SpringBoot(八) - 统一数据返回,统一 ...
JVM
Redis命令手册
微服务(三)之负载均衡(服务端和客户端) ...
锂电池基于DW01组成的过充电、过放、短 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
移动端开发
程序人生
DevOps与敏捷开发
Nosql
快速回复
返回顶部
返回列表