Oracle创建DBLink--A库访问B库

A库 需要访问 B库 进行相关表的数据查询

前提  A库服务器能 ping通B库服务器

一:查看已创建的DBlink

SELECT * FROM dba_objects WHERE object_type = 'DATABASE LINK';

SELECT * FROM all_db_links for update;

二:DBlink创建
--1.查看当前用户是否具有创建DBlink的权限

  select * from user_sys_privs;
    
 --如果当前用户没有创建DBlink的权限,给当前用户赋予权限:
 --即对应用户 没有 CREATE PUBLIC DATABASE LINK ;
 --CREATE DATABASE LINK
 
   grant create public database link to DAIRY;
   grant create database link to DAIRY;
   
--再次执行上述查询语句,当前用户已经有创建DBlink的权限。

--2.sql语句创建DBLink

create public database link TESTLINK1 connect to test1 identified by "123456" USING 'ORCL1521';

--方式1.
create public database link TESTLINK connect to test1 identified by "test2019" USING 'testdb';
--方式2.
create database link TESTLINK connect to test1 identified by "test2019" using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 193.16.0.21)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = testdb)))';

--创建错误可以删除DBLink
DROP PUBLIC DATABASE LINK TESTLINK;

--测试是否能够创建成功
 select sysdate from dual@TESTLINK;--返回正常时间则代表成功

--如果加表名提示 ora00942/ora02063

select * from testTable1@TESTLINK; 
--查询提示ora00942/ora02063 则代表 B库 test用户没有testTable1 表的查询权限 或者是testTable1表前要加t.
--需要在B库给用户test1 设置权限


--3.使用别名如果A库中没有testTable1  则可以
create synonym testTable1 FOR t.testTable1@TESTLINK;--需要加T.时
--或
create synonym testTable1 FOR testTable1@TESTLINK;

--然后在A库就可以用testTable1 来查询
select * from testTable1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值