博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一次数据运维的PL/SQL脚本
阅读量:5132 次
发布时间:2019-06-13

本文共 1393 字,大约阅读时间需要 4 分钟。

目标:MCHTKC表中所有客票的AC联记录,mtcfab及mtccar的取值逻辑变更

运维脚本:

declare  

   type typ_tkc_result is record  
   (    
      mtcprf mchtkc.mtcprf%type,    
  mtcfrm mchtkc.mtcfrm%type,    
  mtctkt mchtkc.mtctkt%type,    
  mtccpn mchtkc.mtccpn%type,    
  mtccar mchtkc.mtccar%type,    
  mtcfab mchtkc.mtcfab%type,    
  RID urowid  
   );  
   type typ_tkc_results is table of typ_tkc_result;  
   tkc_results typ_tkc_results;    --定义数据集合  

   --查询数据范围

   vc_mchtkc_sql varchar2(4000) := 'select mtcprf,mtcfrm,mtctkt,mtccpn,mtccar,mtcfab,rowid from mchtkc where mtctkp = ''PAX'' and mtctyp = ''AC'''; 
    cur_mchtkc sys_refcursor;
begin   
   open cur_mchtkc for vc_mchtkc_sql;     
   loop    --外层循环,每次处理2000条
         fetch cur_mchtkc bulk collect into tkc_results limit 2000;
       for i in 1..tkc_results.count loop      
        begin        
       execute immediate 'select SDCFAB,SDCOCC from saldct where sdcprf = :1 and sdcfrm = :2 and sdctkt = :3 and sdccpn = :4'
                       into tkc_results(i).mtcfab, tkc_results(i).mtccar
                       using tkc_results(i).mtcprf,tkc_results(i).mtcfrm,tkc_results(i).mtctkt,tkc_results(i).mtccpn;
              exception when others then
                 tkc_results(i).mtcfab := '';
                 tkc_results(i).mtccar := '';
           end;
        end loop;        
        forall j in 1..tkc_results.count      
           execute immediate ('UPDATE mchtkc SET mtcfab = :1, mtccar = :2 WHERE rowid = :3 ')                  
            using tkc_results(j).mtcfab,tkc_results(j).mtccar, tkc_results(j).RID;
        commit;
        exit when tkc_results.count < 2000;
    end loop;   
end;

 

 

转载于:https://www.cnblogs.com/VicentChow/p/3528604.html

你可能感兴趣的文章
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>