存储过程---查询其他数据库中的数据插入到本地数据库

create or replace package body PACK_QX_DLZHXX is


  PROCEDURE P_SJCL_QX_DLZHXX(C_DAY VARCHAR2) IS
    SQLERROINFO VARCHAR2(200);
    SCRQ        VARCHAR2(10);
  BEGIN
    INSERT INTO SJ_SJCL_RZ
      (GCM, MS, BZ, CSSJ)
    VALUES
      ('P_SJCL_QX_DLZHXX', '同步征管系统登陆账号信息开始', '0', SYSDATE);
    COMMIT;
    SELECT TO_CHAR(T.CQRQ, 'YYYYMMDD')
      INTO SCRQ
      FROM SJ_SJCQ_JL T
     WHERE T.CQBZ = 'Y'
       AND T.TABLE_NAME = 'QX_DLZHXX';
  
        MERGE INTO QX_DLZHXX T                                                  
  USING (SELECT DLZH_DM,    
                LRR_DM , 
                LRRQ,   
                XGRQ   , 
                XGR_DM , 
                KLYXQZ , 
                KLYXQQ , 
                DLZHKL , 
                SWRY_DM, 
                YXBZ     
                                                  
           FROM QX_DLZHXX@SJ_DB_3QZG                                      
          WHERE LRRQ >= TO_DATE(SCRQ, 'YYYYMMDD')                          
            AND LRRQ < TO_DATE(C_DAY, 'YYYYMMDD')) T1                      
  ON (T.DLZH_DM = T1.DLZH_DM)                                              
  WHEN MATCHED THEN                                                        
    UPDATE                                                                 
       SET  
           T.LRR_DM =T1.LRR_DM , 
           T.LRRQ   =T1.LRRQ  ,  
           T.XGRQ   =T1.XGRQ   , 
           T.XGR_DM =T1.XGR_DM , 
           T.KLYXQZ =T1.KLYXQZ , 
           T.KLYXQQ =T1.KLYXQQ , 
           T.DLZHKL =T1.DLZHKL , 
           T.SWRY_DM=T1.SWRY_DM, 
           T.YXBZ   =T1.YXBZ     
                                                                          
  WHEN NOT MATCHED THEN                                                    
    INSERT                                                                 
    VALUES                                                                 
      (T1.DLZH_DM ,
       T1.LRR_DM  ,
       T1.LRRQ    ,
       T1.XGRQ    ,
       T1.XGR_DM  ,
       T1.KLYXQZ  ,
       T1.KLYXQQ  ,
       T1.DLZHKL  ,
       T1.SWRY_DM ,
       T1.YXBZ    );                                                           
  commit;                                                                  
                                                                           
                                                                           
  UPDATE SJ_SJCQ_JL T                                                      
     SET T.CQRQ = TO_DATE(C_DAY, 'YYYYMMDD'), T.CZSJ = SYSDATE             
   WHERE T.CQBZ = 'Y'                                                      
     AND T.TABLE_NAME = 'QX_DLZHXX';                                       
  COMMIT;                                                                  
  INSERT INTO SJ_SJCL_RZ                                                   
    (GCM, MS, BZ, CSSJ)                                                    
  VALUES                                                                   
    ('P_SJCL_QX_DLZHXX', '同步征管系统登陆账号信息结束', '0', SYSDATE);    
  COMMIT;                                                                  
                                                                           
                                                        
                                                                           
EXCEPTION                                                                  
  WHEN OTHERS THEN                                                         
    ROLLBACK;                                                              
    SQLERROINFO := SUBSTR(TO_CHAR(SQLERRM), 1, 200);                       
    INSERT INTO SJ_SJCL_RZ                                                 
      (GCM, MS, BZ, CSSJ)                                                  
    VALUES                                                                 
      ('P_SJCL_QX_DLZHXX', SQLERROINFO, '1', SYSDATE);                     
    COMMIT;                                                                
END;                                                                       


end PACK_QX_DLZHXX;
/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值