Oracle如何实现跨库查询

 更新时间:2017年05月25日 22:29:57   投稿:mdxy-dxy  
在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中

实现结果:在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中。

二. 实现方法步骤:

    1. 创建存储过程
    2. 在存储过程中先创建database link
    3. 创建成功
    4. 从另一个数据库取出数据插入到当前数据库中
    5. 任务完成 

三. 创建DBLINK的方法:

create public database link dblink
  connect to totalplant identified by totalplant 
  using '(DESCRIPTION =
    (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    )
    (CONNECT_DATA =
     (SERVICE_NAME = prd.gdc)
    )
    )';

        语法解释:create public database link DBLINK名字(自己随便起)
                  connect to 用户名 identified by 密码

     using '(DESCRIPTION =
       (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 要连接的数据库所在服务器的IP地址)(PORT = 1521))
       )
       (CONNECT_DATA =
        (SERVICE_NAME = 要连接的数据库的在本地的服务名(即要连接的数据库的SID))
       )
       )';

     2. 如果创建private的DBLINK

  create database link dblink
  connect to totalplant identified by totalplant 
  using '(DESCRIPTION =
    (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    )
    (CONNECT_DATA =
     (SERVICE_NAME = prd.gdc)
    )
    )'; 

四. 连接成功后从所连接的数据库中取数的方法:

select * from tbl_ost_notebook@dblink;

     说明:只需在表名的后面加上"@DBLINK名字"即可。   

五. 在当前数据库下查看所有的DBLINK的方法:

select * from dba_db_links; 

六. 删除当前数据库下的一个指定的DBLINK的方法:

     1. 如果创建的是一个public的DBLINK,删除时需要用
        drop public database link dblink;
     2. 如果创建的是一个private的DBLINK,删除时需要用
        drop database link dblink;
     说明:drop public database link DBLINK名字;    

七. 查看当前数据库的全局数据库名的方法:
     1. select * from global_name;  

八. 查看当前用户具有哪些针对DBLINK的权限的方法:

SELECT DISTINCT PRIVILEGE AS "Database Link Privileges"
  FROM ROLE_SYS_PRIVS
  WHERE PRIVILEGE IN ( 'CREATE SESSION','CREATE DATABASE LINK',
        'CREATE PUBLIC DATABASE LINK'); 

相关文章

  • 生产环境Oracle undo表空间管理实践

    生产环境Oracle undo表空间管理实践

    这篇文章主要介绍了生产环境Oracle undo表空间管理实践,Oracle 数据库有一种维护信息的方法,用于回滚或撤消对数据库的更改,下面文章分享更多的相关资料需要的小伙伴可以参考一下
    2022-03-03
  • ORACLE时间函数(SYSDATE)深入理解

    ORACLE时间函数(SYSDATE)深入理解

    有些朋友对ORACLE时间函数理解不是很透彻,接下来讲详细介绍,希望可以帮助到你们
    2012-12-12
  • oralce和db2兼容开发注意事项

    oralce和db2兼容开发注意事项

    这篇文章主要介绍了oralce和db2兼容开发注意事项的相关资料,这里整理了几个重要问题及如何解决,需要的朋友可以参考下
    2016-11-11
  • oracle通过1条语句插入多个值的方法示例

    oracle通过1条语句插入多个值的方法示例

    这篇文章主要给大家介绍了关于oracle通过1条语句插入多个值的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Oracle 删除大量表记录操作分析总结

    Oracle 删除大量表记录操作分析总结

    这篇文章主要介绍了Oracle删除大量表记录操作分析总结,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Oracle EXP和IMP用法和介绍

    Oracle EXP和IMP用法和介绍

    正在看的ORACLE教程是:OracleEXP和IMP用法和介绍
    2007-03-03
  • 关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考

    关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考

    这篇文章主要介绍了关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • Oracle查询表里的重复数据方法

    Oracle查询表里的重复数据方法

    这篇文章主要介绍了Oracle查询表里的重复数据方法,需要的朋友可以参考下
    2017-05-05
  • oracle中distinct的用法详解

    oracle中distinct的用法详解

    distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
    2015-09-09
  • Oracle终极彻底卸载的完整步骤

    Oracle终极彻底卸载的完整步骤

    这篇文章主要给大家介绍了关于Oracle终极彻底卸载的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论