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

 更新时间:2024年01月20日 14:49:45   作者:UntifA  
这篇文章主要给大家介绍了关于Oracle跨库访问DBLINK使用以及实际应用的相关资料,DBLink的作用是在局域网内,通过一台服务器上面的数据库访问另外一台服务器上面数据库的功能,需要的朋友可以参考下

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 11g 安装配置图文教程

    Oracle 11g 安装配置图文教程

    这篇文章主要为大家详细介绍了Oracle 11g 安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Oracle安装遇到INS-30131错误的解决方法

    Oracle安装遇到INS-30131错误的解决方法

    这篇文章主要介绍了Oracle安装遇到错误INS-30131的解决方法,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Oracle function函数返回结果集的3种方法

    Oracle function函数返回结果集的3种方法

    工作中常需要经过一段复杂逻辑处理后,得出的一个结果集,所以这篇文章主要给大家介绍了关于Oracle function函数返回结果集的3种方法,需要的朋友可以参考下
    2023-07-07
  • Oracle数据库中查询时怎么使用日期(时间)作为查询条件

    Oracle数据库中查询时怎么使用日期(时间)作为查询条件

    这篇文章主要给大家介绍了关于Oracle数据库中查询时怎么使用日期(时间)作为查询条件的相关资料,Oracle数据库下基于日期条件的查询发挥着重要的作用,它能够帮助开发者实现比较复杂的数据管理任务,需要的朋友可以参考下
    2024-02-02
  • Oracle如何实现跨库查询

    Oracle如何实现跨库查询

    在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中
    2017-05-05
  • Oracle中TIMESTAMP的几种类型介绍与实例

    Oracle中TIMESTAMP的几种类型介绍与实例

    我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。这篇文章主要介绍了Oralce中TIMESTAMP的几种类型。有需要的朋友们可以参考借鉴。
    2016-12-12
  • 浅析Oracle中char和varchar2的区别

    浅析Oracle中char和varchar2的区别

    以下是对Oracle中char和varchar2的区别进行了分析介绍,需要的朋友可以过来参考下
    2013-07-07
  • Oracle 错误日志表及异常处理包详解 附源码

    Oracle 错误日志表及异常处理包详解 附源码

    这篇文章主要介绍了Oracle 错误日志表及异常处理包详解 附源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Oracle 查询优化的基本准则详解

    Oracle 查询优化的基本准则详解

    本篇文章是对Oracle查询优化的基本准则进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Oracle to_date()函数的用法介绍

    Oracle to_date()函数的用法介绍

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,需要的朋友可以参考下
    2014-08-08

最新评论