Oracle跨服务器取数——DBlink 初级使用

17 篇文章 8 订阅
14 篇文章 2 订阅

前言

一句话解释DBlink是干啥用的
实现跨库访问的可能性.

通过DBlink我们可以在A数据库访问到B数据库中的所有信息,例如我们在加工FDS层表时需要访问ODS层的表,这是就需要跨库访问

一、DBlink的分类

private:用户级别,只有创建该dblink的用户才可以使用这个dblink来访问远程的数据库,同时也只有该用户可以删除这个dblink。
public:数据库级别,本地数据库中所有的用户数据库访问权限的用户或者pl/sql程序都能使用这个dblink。
global:网络级别,这是对于oracle network而言的。

二、DBlink的使用

1.使用前查看权限

在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(

--查看w11413用户是否具备创建database link 权限
select * from user_sys_privs 
where 1=1
AND privilege like upper(’%DATABASE LINK%’) 
AND USERNAME=‘w11413’; 

如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为ZHANGJK用户赋予创建权限

-- 给w11413用户授予创建dblink的权限
grant create public database link to w11413;

赋权后得到该结果即可:

2.创建DBlink

pl/sql创建
View => Object Browser => Database links => 右击New

在这里插入图片描述

  1. 可勾选公共public , 如果不勾选则默认当前数据库
  2. 链接目标数据库 , 填写该库用户名和密码
  3. 点击apply执行

在这里插入图片描述

 sqlplus中的sql语句创建

-- 注意一点,如果密码是数字开头,用""括起来
create public database link TESTLINK2 connect to  identified by "661223" USING 'CHD-UT_HDORA-211'

 3.简单的跨库使用

-- 最简单的用法
SELECT * FROM table_name@database_link;
-- 不想让别人知道database link名字的时候,可以使用同义词包装一下
CREATE SYNONYM table_name for table_name@database_link;
SELECT * FROM table_name;
-- 也可以建立一个视图来封装
CREATE VIEW table_name_v AS SELECT * FROM table_name@database_link;
-- 删除public类型的dblink
DROP PUBLIC DATABASE LINK dblink_name;
-- 删除private类型的dblink,只有创建者自己能删
DROP DATABASE LINK dblink_name;

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值