Oracle跨库访问DBLINK使用以及实际应用

 更新时间:2024年01月20日 14:49:45   作者:UntifA  
这篇文章主要给大家介绍了关于Oracle跨库访问DBLINK使用以及实际应用的相关资料,DBLink的作用是在局域网内,通过一台服务器上面的数据库访问另外一台服务器上面数据库的功能,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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';

总结 

到此这篇关于Oracle跨库访问DBLINK使用以及实际应用的文章就介绍到这了,更多相关Oracle跨库访问DBLINK内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

您可能感兴趣的文章:

相关文章

  • Oracle数据库执行慢问题排查详细过程

    Oracle数据库执行慢问题排查详细过程

    这篇文章主要给大家介绍了关于Oracle数据库执行慢问题排查的详细过程,在企业级应用中,数据库的稳定性和性能是至关重要的,文中给出了详细的代码实例,需要的朋友可以参考下
    2023-07-07
  • Oracle数据库常用命令整理(实用方法)

    Oracle数据库常用命令整理(实用方法)

    这篇文章主要介绍了Oracle数据库常用命令整理(实用方法),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 在ORACLE中SELECT TOP N的实现方法

    在ORACLE中SELECT TOP N的实现方法

    这篇文章主要介绍了在ORACLE中SELECT TOP N的实现方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-01-01
  • oracle数据排序后获取前几行数据的写法(rownum、fetch方式)

    oracle数据排序后获取前几行数据的写法(rownum、fetch方式)

    项目中用到Oracle分组查询取每组排序后的前N条记录,group?by?只能返回每个组的单条统计,下面这篇文章主要给大家介绍了关于oracle数据排序后获取前几行数据的写法(rownum、fetch方式),需要的朋友可以参考下
    2022-12-12
  • Oracle中转义字符的详细介绍

    Oracle中转义字符的详细介绍

    在ORACLE中,单引号有两个作用: 字符串是由单引号引用和转义。最近就遇到了转义的问题,下面这篇文章就给大家主要介绍了关于Oracle中转义字符的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • oracle处理锁表基本操作

    oracle处理锁表基本操作

    在本篇文章里小编给大家整理的是关于oracle处理锁表基本操作以及相关代码,需要的朋友们学习下。
    2019-11-11
  • Oracle中的触发器trigger

    Oracle中的触发器trigger

    这篇文章介绍了Oracle中的触发器trigger,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Oracle10g 安装方法

    Oracle10g 安装方法

    如果你是初学者,你有必要看看这篇文章。
    2009-06-06
  • Oracle动态视图v$active_session_history实战示例

    Oracle动态视图v$active_session_history实战示例

    这篇文章主要为大家介绍了Oracle动态视图v$active_session_history实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Oracle实现查询2个日期所跨过的月份列表/日期列表的方法分析

    Oracle实现查询2个日期所跨过的月份列表/日期列表的方法分析

    这篇文章主要介绍了Oracle实现查询2个日期所跨过的月份列表/日期列表的方法,结合实例形式分析了Oracle日期相关查询与运算相关操作技巧,需要的朋友可以参考下
    2019-09-09

最新评论


http://www.vxiaotou.com