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

2024-03-01 0 365
目录
  • 1. DBLINK的介绍
  • 2. DBLINK的使用简介
    • 2.1 权限问题
    • 2.2 创建DBLINK
    • 2.3 查询DBLINK
    • 2.4 删除DBLINK
  • 3. DBLINK实际应用语句举例
    • 总结

      1. DBLINK的介绍

      Oracle在进行跨库访问时,可以创建DBLINK实现,比如要将UAT的表数据灌入开发环境,则可以使用UAT库为数据源,通过DBLINK实现将查出的数据灌入开发库。简而言之就是在当前数据库中访问另一个数据库中的表中的数据

      2. DBLINK的使用简介

      2.1 权限问题

      要想创建DBLINK,首先要检查当前用户是否具备权限。

      SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER(\’%DATABASE LINK%\’);

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

      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图形化界面创建

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

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

        等价于
        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\’;

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

      • 如果网络配置文件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\’;

      创建以后查询结果:

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

      2.3 查询DBLINK

      • 查询当前实例下所有的DBLINK

      SELECT * FROM dba_db_links t;

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

      • 查询当前用户下所有的DBLINK

      SELECT * FROM user_db_links t;

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

      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内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

      收藏 (0) 打赏

      感谢您的支持,我会继续努力的!

      打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
      点赞 (0)

      悠久资源 Oracle Oracle跨库访问DBLINK使用以及实际应用 https://www.u-9.cn/database/oracle/176548.html

      常见问题

      相关文章

      发表评论
      暂无评论
      官方客服团队

      为您解决烦忧 - 24小时在线 专业服务