使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • List转Set[通俗易懂]

    List转Set[通俗易懂]List转SetList<String>myList=newArrayList()<String>;myList.add(“1”);myList.add(“1”);Setresult=newHashSet(myList);Set转ListString[]str=newString[]{“Tom”,”Bob”,”Jane”};…

    2022年6月21日
    22
  • 三种主流芯片架构简单比较[通俗易懂]

    三种主流芯片架构简单比较[通俗易懂]来源:https://blog.csdn.net/weixin_39752599/article/details/78664055可以参照的信息:https://blog.csdn.net/shenghuaDay/article/details/78747561三种主流芯片架构  1. ARM ARM是高级精简指令集的简称(AdvancedRISCMachine),它是一个32位的精简…

    2025年9月24日
    4
  • 补码、二进制的减法

    补码、二进制的减法有关二进制的负数及减法运算二进制数表示方法:原码反码补码二进制减法运算法则:**二进制数表示方法:**无符号二进制数(正数)(8位)(能够表示的十进制数范围0-255)举例:10(8’b0000_1010)100(8’b0110_0100)255(8’b1111_1111)有符号二进制数(正数负数)(8位)(能够表示的十进制数范围-128~127)举例…

    2022年6月18日
    31
  • nginx一键部署脚本

    nginx一键部署脚本

    2021年6月2日
    95
  • 一种突发事件的时滞动力学模型 2019-nCoV与参数辨识[通俗易懂]

    一种突发事件的时滞动力学模型 2019-nCoV与参数辨识[通俗易懂]@TOC一种突发事件的时滞动力学模型2019-nCoV与参数辨识摘要在本文中,我们提出了一个具有时滞的动态系统来描述2019-nCoV在中国的爆发。这种传染病的一个典型特征是它可以在潜伏期传播,因此可以用微分方程中的时滞过程来描述。分类群体的累计数量作为变量,与官方数据一致,便于参数辨识。为2019-nCoV疫情的预测和参数识别提供了数值方法,数值结果表明,该动态系统能够较好地预测疫情的发展…

    2022年9月28日
    4
  • idea202112激活码下载[最新免费获取]

    (idea202112激活码下载)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSWQi…

    2022年3月25日
    56

发表回复

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

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