当前位置:   article > 正文

Oracle 使用DBLink技术 同步异地数据库_oracle 异地数据库数据表同步

oracle 异地数据库数据表同步

OracleDBLink介绍地址

CREATE DATABASE LINK

基本信息

    Oracle在跨地域库访问,可以通过创建DBLink实现。

         环境配置:在tnsnames.ora中配置两个数据库别名:HISDB(用户名:SBHIS 密码:XXX)、PACS(用户名:PACS密码:PACS),在SBHIS中     创建DBLink来访问PACS

       

 第①步:赋予权限

在创建DBLink之前,我们需要判断,登陆的用户是否具备创建DBLink的权限,所以我们执行以下的语句(用SBHIS用户登陆HISDB):

  1. -- 1.1查看SBHIS 用户是否具备创建DBLink的权限
  2. Select A.ADMIN_OPTION From user_sys_privs A Where  A.Privilege = 'CREATE DATABASE LINK' And A.USERNAME = 'SBHIS';

 如果查询有返回行,则表示具备创建DBLink权限,否则,则需要使用sys登陆HISDB为SBHIS 用户赋予创建权限

  1. -- 1.2给SBHIS 用户授予创建DBLink的权限
  2. Grant Create Public Database Link To SBHIS;

 此时,再执行1.1,查看SBHIS是否具备创建DBLink的权限

 第②步;创建DBLink

-- Drop existing database link 
Drop Public Database Link PACS;
-- Create database link 
Create Public Database Link PACS
  Connect to PACS Identified By PACS
  Using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SB.SB.SB.SB)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PACS)))';

       这样,就完成了简单DBLink简单的创建

   第③步:业务处理

          3.1首先,我们需要在HISDB库中新建一张复制表,并编写存储过程同步数据,如下图:

           

        3.2现在,我们通过DBLink在创建存储过程同步数据

          

  1. CREATE OR REPLACE Procedure Zl100_UserJob同步PACS As
  2. --功能:同步三方PACS数据
  3. --作者 中联西安-王大圣 wsfeng@zlsoft.cn iwangshengfeng@163.com
  4. --时间:2021-02-22
  5. n_count Number(10);
  6. Begin
  7. --获取昨日的PACS数据
  8. For r_item In (Select ACCNO, PATTYPE, IDCARD
  9. From ris.viewrisordertohis@RIS A
  10. Where A.reportdt Between
  11. To_Char(Sysdate - 1, 'yyyy-MM-dd') || ' 00:00:00' And
  12. To_Char(Sysdate - 1, 'yyyy-MM-dd') || ' 23:59:59')
  13. Loop
  14. --查找是否存在数据
  15. Select Count(1)
  16. Into n_count
  17. From PACSHISTORY A
  18. Where A.ACCNO = r_item.ACCNO;
  19. --不存在则插入
  20. If n_count >= 1 Then
  21. Delete PACSHISTORY A Where A.ACCNO = r_item.ACCNO;
  22. End If;
  23. Insert Into PACSHISTORY
  24. (ACCNO, PATTYPE, IDCARD)
  25. Values
  26. (r_item.ACCNO, r_item.PATTYPE, r_item.IDCARD);
  27. End Loop;
  28. Exception
  29. When Others Then
  30. zl_ErrorCenter(Sqlcode, Sqlerrm);
  31. End;

大功告成...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/781636
推荐阅读
相关标签
  

闽ICP备14008679号