码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Oracle创建DBlink


    Oracle创建DBlink

    • 查看DBlink情况
    • 创建和删除
    • 其他

    有时候会存在在登录A数据库时需要访问B数据库的库表的需求,此时可以建立对B库的DBlink连接去访问。
    例如,当我们在使用A数据库下的A_TEST用户登录A数据库时,需要访问B数据库B_TEST用户下的table_test表,可以如下去操作:

    数据库信息如下:
    A数据库:10.255.45.27:1521/orcl
    A数据库用户/密码:A_TEST/654321
    B数据库:10.255.45.28:1521/volteweb
    B数据库用户/密码:volteweb/123456

    操作步骤:
    第一步:检查A_TEST是否有创建DBlink的权限

    select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='A_TEST';
    
    • 1

    若没有查询到数据,那么直接查询 select * from user_sys_privs;当权限是"UNLIMITED TABLESPACE",表示这个用户有系统权限,也可以不授予DBlink的权限

    第二步:若以上情况都不满足,则执行以下语句进行赋权

    grant create public database link to A_TEST;
    
    • 1

    查看DBlink情况

    select * from dba_db_links
    
    -- 或者
    select owner,object_name from dba_objects where object_type='DATABASE LINK'
    
    • 1
    • 2
    • 3
    • 4

    创建和删除

    创建DBlink

    -- 格式
    create public database link DBlink名   
    connect to 用于连接目标库的用户 identified by 密码 
    using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)
    (HOST = 目标数据库IP)(PORT = 目标数据库端口)))(CONNECT_DATA =(SERVICE_NAME = 目标数据库实例名称)))';
    
    
    -- 实例:
    -- 登录A数据库,创建对B库的DBlink连接
    create public database link VOLTEWEB_28   
    connect to volteweb identified by 123456
    using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)
    (HOST = 10.255.45.28)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = volteweb)))';
    
    -- 登录B数据库,创建对A库的DBlink连接
    create public database link A_TEST_27 
    connect to A_TEST identified by 654321
    using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)
      (HOST = 10.255.45.27)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    删除DBlink

    drop public database link DBlink名;
    
    • 1

    其他

    创建DBlink之后,就能直接查询其他数据库的表。

    select * from d_cell_all@VOLTEWEB_28
    
    • 1

    如果觉得这样麻烦,也可以先用DBlink创建视图,然后直接查视图。

    create or replace view v_cell_all as
    select * from d_cell_all@VOLTEWEB_28
    
    -- 创建视图之后,可直接查询视图
    select * from v_cell_all
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    深入理解Java虚拟机(第3版)学习笔记——线程安全与锁优化(超详细)
    2023联考管综论说文阅卷标准及提分计划:附2010-2022年真题
    用户增长模型:3A3R策略模型
    大数据(九):数据可视化(一)
    【李沐深度学习笔记】线性代数实现
    从服务器虚机可以ping通交换机,但无法ssh上交换机,从另外一台同网段的虚机上面既可以ping通交换机,也可以ssh上交换机,请问这个是啥问题产生的 报错:Connection timed out
    打造千万级流量秒杀第十二课 高性能缓存:多级缓存是如何提升服务性能的?
    k8s暴露集群内和集群外服务的方法
    在线人才测评,招聘技术研发类岗位的人才测评方案
    著名数字音频工作站FL Studio 21.0.3.3517中文破解安装图文激活教程
  • 原文地址:https://blog.csdn.net/qq_55342245/article/details/127868105
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号