使用Oracle DBLink进行数据库之间对象的訪问操作

使用Oracle DBLink进行数据库之间对象的訪问操作

大家好,又见面了,我是全栈君。

Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中能够操作还有一个数据库中的对象,比如我们新建了一个数据database1。我们须要操作数据库database2中的表,或者我们须要操作远程机器上数据库database3中的表。我们就能够使用dblink这个强大的功能!

1、我们假设要创建全局的DBLink。就是说不管什么角色都能够使用,那么我们须要先确定用户是否有DBLink权限,假设没有则须要使用sysdba角色给用户授权:

查看用户是有有DBLink权限:

select * from user_sys_privs where privilege like upper('%DATABASE LINK%');  

没有,则使用sysdba授权:

grant create public database link to dbusername; 

2、使用语句创建DBLink:

create database link 要创建的dblink名称
connect to 要连接数据库的username identified by 要连接数据的password
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 连接数据库主机IP地址)(PORT = port号))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = 连接数据库服务名)
    )
)';

假设创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public:

create public database....

比如,在testdb2中创建test_dblink,来操作主机192.168.1.254中testdb1数据库:

create database link tset_dblink
connect to username identified by password1
using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb1)
    )
)';

3、使用DBLink:

查询还有一个数据库中的数据。其它改动、删除是一样的使用,都是还有一个数据库表名@本数据库创建dblink名称:

select xxx FROM 表名@dblink名称; 

比如我们在testdb2中使用dblink查看testdb1中tb_user表中的数据:

select * from tb_user@tset_dblink;

查看数据中创建的dblink:

select owner,object_name from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;

删除对应的dblink:

drop database link dblink名称;

关闭dblink连接:

alter session close database link 'dblink_name'

创建和删除视图:

create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);  
drop view 视图名;  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115271.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 时间序列大数据平台建设经验谈

    时间序列大数据平台建设经验谈版权声明:本文由本人撰写并发表于2018年1月刊的《程序员》杂志,本文版权归《程序员》杂志所有,未经许可不得转载。引言在大数据的生态系统里,时间序列数据(TimeSeriesData,简称TSD)是很常见也是所占比例最大的一类数据,几乎出现在科学和工程的各个领域,一些常见的时间序列数据有:描述服务器运行状况的Metrics数据、各种IoT系统的终端数据、脑电图、汇率、股价、气象和天

    2022年6月11日
    27
  • 通过cmd命令快速进入MySQL

    通过cmd命令快速进入MySQL想直接通过cmd直接进入MySQL的设置方法:1.找到MySQL安装路径C:\ProgramFiles\MySQL\MySQLServer5.5\bin,然后复制。2.然后点我的电脑右键属性-》高级系统设置-》高级-》环境变量-》系统变量-》编辑path,在path中将上面的路径复制进去就可以了。3.然后在cmd中直接输入mysql-uroot-p123456即可…

    2022年5月27日
    31
  • PostgreSQL是什么?StackOverflow上开发者最爱和最想要的关系型数据库

    PostgreSQL是什么?StackOverflow上开发者最爱和最想要的关系型数据库

    2022年3月2日
    32
  • Android arm64-v8a、armeabi-v7a、armeabi详解「建议收藏」

    一、架构介绍早期的Android系统几乎只支持ARMv5的CPU架构,后面发展到支持七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年起),MIPS(从2012年起),ARMv8,MIPS64和x86_64(从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口(ApplicationBinaryInterface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android系

    2022年4月15日
    1.8K
  • PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)

    PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)kezunhai@gmail.comhttp://blog.csdn.net/kezunhai    浮雕效果可谓花样百出,但他们主要是基于图像相邻像素的差值来实现的。对于大多数图像而

    2022年6月20日
    30
  • j2EE是什么_j2ee体系结构

    j2EE是什么_j2ee体系结构经过本次学习,我们知道了J2EE的整体架构以及一些核心的组件,更加理解了其伸缩性、灵活性和易维护性,这对我们以后的学习会有很大的帮助.当然,我们学过了这些基本的概念之后,最主要的还是要在实际运用中去体会,去总结,然后再返回来看这些东西,我们就会有很大的收获。这就是一个学习的过程,加油。

    2022年10月11日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号