首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
图数据库
›
Oracle-跨库访问DBLINK
返回列表
发新帖
Oracle-跨库访问DBLINK
[复制链接]
发表于 2024-8-3 15:34:10
来自手机
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
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';
复制代码
回复
使用道具
举报
返回列表
九天猎人
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表