zoukankan      html  css  js  c++  java
  • 一个不简单的Procedure body例子

      1 create or replace package body CountBankData_20150617 is
      2   type cursorCommon is ref cursor;           --游标类型
      3   strSQL          varchar2(7000);            --sql语句变量
      4   strTemp         varchar2(3000);
      5   strTmp          varchar2(3000);
      6 
      7   -- Author  : ADMINISTRATOR
      8   -- Created : 2005-3-3 8:50:34
      9   -- Purpose :
     10 
     11   -- Public type declarations
     12   --type <TypeName> is <Datatype>;
     13 
     14   -- Public constant declarations
     15   --<ConstantName> constant <Datatype> := <Value>;
     16 
     17   -- Public variable declarations
     18   --<VariableName> <Datatype>;
     19 
     20   -- Public function and procedure declarations
     21   /*****************************************************************************--
     22   --*******************************公共函数*************************************--
     23   --*****************************************************************************/
     24 
     25  /*-- 星期--*/
     26 
     27 function getWeek(
     28    strDate varchar2
     29 )
     30 return varchar2 is
     31   sWeek varchar2(2);
     32 begin
     33   select decode(to_char(to_date(strDate,'yyyy-MM-dd')-1,'d'),1,'一',2,'二',3,'三',4,'四',5,'五',6,'六',7,'日')
     34    into sWeek from dual;
     35   return sWeek;
     36 end ;
     37  /*-- 合并日期--*/
     38 function uniteDate(
     39  gYear varchar2,
     40  gMonth varchar2,
     41  gDay   varchar2
     42 )
     43 return varchar2 is
     44   sDay varchar2(2);
     45   sMonth varchar2(2);
     46   strResult varchar2(10);
     47 begin
     48    if length(gMonth)=1 then
     49      sMonth:='0'||gMonth;
     50    else
     51      sMonth:=gmonth;
     52    end if;
     53    if length(gDay)=1 then
     54      sDay:='0'||gDay;
     55     else
     56      sDay:=gDay;
     57     end if;
     58     strResult:=gYear||'-'||sMonth||'-'||sDay;
     59     return strResult;
     60 end;
     61 
     62  /*-- 取序号--*/
     63   function getNextNumber(
     64     gfieldName      varchar2,
     65     gLength         number
     66   )return varchar2 is
     67     intCount        number;
     68     intafa007       number;
     69     strResult       varchar2(20);
     70   begin
     71     select Count(*) into intCount from fa02 where upper(afa006)=upper(gfieldName);
     72     if intCount=0 then
     73       strResult:=addZero('1',gLength);
     74       insert into fa02 (afa006,afa007) values (upper(gfieldName),1);
     75     else
     76       select afa007 into intafa007 from fa02 where upper(afa006)=upper(gfieldName);
     77       strResult:=addzero(TO_CHAR(intafa007+1),gLength);
     78       update fa02 set afa007=afa007+1 where upper(afa006)=upper(gfieldName);
     79     end if;
     80     return strResult;
     81   end;
     82 
     83   --是否已经审核
     84   function  isAuditing(
     85     gAAA010 Varchar2,
     86     gBankOCode Varchar2,
     87     gYear     varchar2,
     88     gMonth    varchar2,
     89     gDay      varchar2
     90   ) return boolean is
     91      intCount    number;
     92      intn        number;
     93   begin
     94     select  count(*) into intn  from  DCJGZK where FYHDM=gBankOCode and FCJYEAR=gYear and FCJTERM=gMonth and FCJRI=gDay  and aaa010=gAAA010;
     95     if intn>0 then
     96       select FIFCJ into intCount from  DCJGZK where FYHDM=gBankOCode and FCJYEAR=gYear and FCJTERM=gMonth and FCJRI=gDay  and aaa010=gAAA010;
     97       if intCount=1 then
     98        return true;
     99       else
    100        return false;
    101        end if;
    102     else
    103       return false;
    104      end if;
    105   end;
    106 
    107   --退回银行
    108   procedure backbank(
    109   gaaa010    AA11.AAA010%type,
    110   gBankOCode varchar2,
    111   gDate      varchar2
    112   ) is
    113   begin
    114     --先插入财政退回待查 再删待查表
    115     delete from fc77 where AAA010=gaaa010 and AFC015=gDate and AFA101=gBankOCode;
    116     INSERT INTO fc77
    117             (AFC401,AAA010,AFC001,AFA031,AFA051,AFA101,AAA011,AFC002,AFC003,AFC004,AFC005,AFA052,
    118             AFA053,AFC006,AFC007,AFC008,AFA032,AFC009,AFC010,AFC011,AFC012,AFC013,AFC014,AFC015,AFC016,FZPH,DCLX,AFC200,AFC201)
    119             select AFC401,AAA010,AFC001,AFA031,AFA051,AFA101,AAA011,AFC002,AFC003,AFC004,AFC005,AFA052,
    120              AFA053,AFC006,AFC007,AFC008,AFA032,AFC009,AFC010,AFC011,AFC012,AFC013,AFC187,AFC015,AFC016,FZPH,DCLX,AFC200,AFC201
    121              from fc74 where AAA010=gAAA010
    122             and AFC015=gDate
    123               and AFA101=gBankOCode;
    124 
    125      delete from fc74 where AAA010=gaaa010   and AFC015=gDate  and AFA101=gBankOCode;
    126      --将需要删除的bp01表中的数据备份到bp05中,再做删除操作先删除是为了防止重复备份 add at 2015年6月23日 15:25:56
    127      delete from bp05 where (select f.aaa010 from bp05 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp05.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
    128      insert into bp05(AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214) select AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214 from bp01 b where (select f.aaa010 from bp01 p,fpos02 f where p.abp205=f.aaa003 and p.abp205=b.abp205)=gaaa010 and b.abp101=gDate and b.abp203=gBankOCode;
    129      delete from bp01 where (select f.aaa010 from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
    130 
    131      --将需要删除的bp02表中的数据备份到bp06中,再做删除操作先删除是为了防止重复备份 add at 2015年6月23日 15:25:56
    132      delete from bp06 where (select f.aaa010 from bp06 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp06.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
    133      insert into bp06(AFC401,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214,ABP222,ABP223) select AFC401,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214,ABP222,ABP223 from bp02 b where (select f.aaa010 from bp02 p,fpos02 f where p.abp205=f.aaa003 and p.abp205=b.abp205)=gaaa010 and b.abp101=gDate and b.abp203=gBankOCode;
    134      delete from bp02 where (select f.aaa010 from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
    135 
    136      --将需要删除的bp04表中的数据备份到bp07中,再做删除操作先删除是为了防止重复备份 add at 2015年6月23日 15:25:56
    137      delete from bp07 where (select f.aaa010 from bp07 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp07.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
    138      insert into bp07(AFC401,AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214) select AFC401,AFC501,ABP201,ABP202,ABP203,ABP204,ABP205,ABP206,ABP207,ABP208,ABP209,ABP101,ABP210,ABP211,ABP212,ABP213,ABP214 from bp04 b where (select f.aaa010 from bp04 p,fpos02 f where p.abp205=f.aaa003 and p.abp205=b.abp205)=gaaa010 and b.abp101=gDate and b.abp203=gBankOCode;
    139      delete from bp04 where (select f.aaa010 from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)=gaaa010 and abp101=gDate and abp203=gBankOCode;
    140 
    141      delete from fc78 where AAA010=gaaa010 and afc015=gDate and AFA101=gBankOCode;
    142      INSERT INTO fc78
    143              (AFC306,AAA010,AFC041,AFA050,AFC061,AFC062,AFC063,AFC064,AFC065,
    144               AFC066,AFA091,AFC067,AFC015,AFA101,AFC001,AAZ015)
    145       select AFC306,AAA010,AFC041,AFA050,AFC061,AFC062,AFC063,AFC064,AFC065,
    146               AFC066,AFA091,AFC067,AFC015,AFA101,AFC001,'0'
    147              from fc75 where AAA010=gaaa010
    148              and afc015=gDate and AFA101=gBankOCode;
    149 
    150      delete from fc75 where AAA010= gaaa010
    151              and afc015=gDate and AFA101=gBankOCode;
    152 
    153      delete from fc79 where AAA010=gaaa010 and AFC015=gDate and AFC153=gBankOCode;
    154      INSERT INTO fc79
    155      (AFC001,AFA031,AFC163,AFC187,AFC183,AFC157,AFC181,AFA040,AFC180,AFA192,AFA051,AFA053,
    156      AFC166,AFC155,AFC153,AFC154,AFA183,AFA184,AFA185,AFA032,AFA052,AFC015,AAA010,AFC200,AFC201,AFA260)
    157      select AFC001,AFA031,AFC163,AFC187,AFC183,AFC157,AFC181,AFA040,AFC180,AFA192,AFA051,AFA053,
    158      AFC166,AFC155,AFC153,AFC154,AFA183,AFA184,AFA185,AFA032,AFA052,AFC015,AAA010,AFC200,AFC201,AFA260
    159      from fc76
    160      where AAA010=gAAA010   and AFC015=gDate   and afc153=gBankOCode;
    161 
    162      delete from fc76 where AAA010=gaaa010   and AFC015=gDate  and afc153=gBankOCode;
    163      --删除单位间分成收入 add by zgz 20081210
    164      delete from fc88 where AAA010=gaaa010  and afc015=gDate and afa101=gBankOcode and aaz100='1';
    165      delete from fc88 where AAA010=gaaa010 and afc015=gDate and afc201=gBankOCode and aaz100='2';
    166      -- delete from fc89 where fczqhnm=gaaa010 and fhkrq=gDate and fdsyhdm=gBankOCode;
    167      --删除银行补录数据但未确认成功的
    168      DELETE FROM fc84 WHERE AAA010=gaaa010 AND afc015=gDate AND afa101=gBankOcode AND fsfqr='0';
    169      delete from DCJGZK where aaa010=gaaa010 and fyhdm=gBankOCode and fcjyear=substr(gdate,1,4) and fcjterm=substr(gdate,6,2)   and fcjri=substr(gdate,9,2) ;
    170   end;
    171 
    172   --统计银行  利息收入
    173   procedure CountBankData(
    174     gAAA010       AA11.AAA010%type,
    175     gYear         varchar2,
    176     gMonth         varchar2,
    177     gDay          varchar2,
    178     gResult         in out varchar2
    179    ) is
    180    sDate varchar2(10);
    181    sWeek varchar2(2);
    182    sBankOCode fa22.afa101%type;
    183    szcsrbs    number;
    184    szcsrje    fc76.afc157%type;--正常收入
    185    sdcsrbs    number;
    186    sdcsrje    fc76.afc157%type;--待查收入
    187    szhlxsr    fc76.afc157%type;--财政专户利息收入
    188    sdchlxsr   fc76.afc157%type;--待查户利息收入
    189    sdccmje    fc76.afc157%type;--待查查明收入
    190    sdccmbs    number;
    191    stfsrbs    number;
    192    stfsrje    fc76.afc157%type;
    193    zhstfsrbs    number;
    194    zhstfsrje    fc76.afc157%type;
    195    sdwjfcfcsr  dcjgzk.dwjfcfcsr%type;
    196    sdwjfcfrsr  dcjgzk.dwjfcfrsr%type;
    197 
    198    syhye      fc76.afc157%type;
    199    sdatatype  varchar(50);
    200    syhbm      varchar(5);--银行编码
    201    syhmc      varchar(200);
    202    sjkshm     varchar(20);
    203    slsh      varchar(50);
    204    serr     varchar(100);
    205    sczqh    varchar(10);
    206    szje     fc76.afc157%type;
    207    sxmhjje  fc76.afc157%type;
    208    --add at 2015年6月18日
    209      fzcsrposbs    number;--正常收入POS笔数   
    210    fzcsrposje    bp01.abp201%type;--正常收入POS金额
    211      fdcsrposbs    number;--待查收入POS笔数
    212      fdcsrposje    bp02.abp201%type;--待查收入POS金额
    213      fdccmposbs    number;--待查查明收入POS笔数
    214      fdccmposje    bp04.abp201%type;--待查查明收入POS金额
    215 
    216    intFXH  NUMBER;
    217    csrCommon cursorCommon;
    218    csrCheck  cursorCommon;
    219    begin
    220      gResult:='0';
    221      sDate:= uniteDate(gYear,gMonth,gDay);
    222      sWeek:=getWeek(sDate);
    223     -- strSQL:='select * from fa22';
    224      strSQL:='select BankOCode,(zcsrbs+fzcsrposbs) zcsrbs,(nvl(zcsrje,0)+nvl(fzcsrposje,0)) zcsrje,fzcsrposbs,nvl(fzcsrposje,0) fzcsrposje,fdcsrposbs,nvl(fdcsrposje,0) fdcsrposje,fdccmposbs,nvl(fdccmposje,0) fdccmposje,(dcsrbs+fdcsrposbs) dcsrbs,(nvl(dcsrje, 0)+nvl(fdcsrposje, 0)) dcsrje,nvl(zhlxsr,0) zhlxsr,nvl(dchlxsr,0) dchlxsr,'
    225              ||' tfsrbs,nvl(tfsrje,0) tfsrje,zhtfsrbs,nvl(zhtfsrje,0) zhtfsrje, (nvl(zcsrje, 0) + nvl(dcsrje, 0) + nvl(dccmje, 0) - nvl(tfsrje, 0)- nvl(dwjfcfcsr, 0) + nvl(dwjfcfrsr, 0)) yhye,'
    226              ||'(nvl(dccmje,0)+nvl(fdccmposje, 0)) dccmje,(dccmbs+fdccmposbs) dccmbs,nvl(dwjfcfcsr,0) dwjfcfcsr,nvl(dwjfcfrsr,0) dwjfcfrsr from '
    227              ||' (select  a.BankOCode,'
    228              ||'(select count(*) from fc76 where AAA010= '''||gAAA010
    229              ||''' and AFC015= '''||sDate||''' and AFC153=a.BankOCode) zcsrbs, '
    230              ||' (select zcsrje from (select AFC153 BankOCode,sum(nvl(AFC181,0)) zcsrje from fc76 '
    231              ||'  where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' group by AFC153) zc'
    232              ||' where zc.BankOCode=a.BankOCode) zcsrje,'
    233              --正常收入POS add at 2015年6月18日
    234              ||'(select count(*) from bp01 where (select min(f.aaa010) from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)= '''||gAAA010
    235              ||''' and abp101= '''||sDate||''' and abp202=a.BankOCode) fzcsrposbs, '
    236              ||' (select fzcsrposje from (select abp202 BankOCode,sum(nvl(abp201,0)) fzcsrposje from bp01 '
    237              ||'  where abp101= '''||sDate||''' and (select min(f.aaa010) from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)= '''||gAAA010||''' group by abp202) zcp'
    238              ||' where zcp.BankOCode=a.BankOCode) fzcsrposje,'
    239              --待查收入POS
    240              ||'(select count(*) from bp02 where (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)= '''||gAAA010
    241              ||''' and abp101= '''||sDate||''' and abp202=a.BankOCode) fdcsrposbs, '
    242              ||' (select fdcsrposje from (select abp202  BankOCode,sum(nvl(abp201 ,0)) fdcsrposje from bp02 '
    243              ||'  where abp101 = '''||sDate||''' and (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)= '''||gAAA010||''' group by abp202 ) dcp'
    244              ||' where dcp.BankOCode=a.BankOCode) fdcsrposje,'
    245              --待查查明收入POS
    246              ||'(select count(*) from bp04 where (select min(f.aaa010) from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)= '''||gAAA010
    247              ||''' and abp101= '''||sDate||''' and abp202=a.BankOCode) fdccmposbs, '
    248              ||' (select fdccmposje from (select abp202  BankOCode,sum(nvl(abp201 ,0)) fdccmposje from bp04 '
    249              ||'  where abp101 = '''||sDate||''' and (select min(f.aaa010) from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)= '''||gAAA010||''' group by abp202 ) dccmp'
    250              ||' where dccmp.BankOCode=a.BankOCode) fdccmposje,'
    251              
    252              ||' (select count(*) from FC74 where AAA010= '''||gAAA010
    253              ||''' and AFC015= '''||sDate||''' and AFA101=a.BankOCode and DCLX=''00'') dcsrbs, '
    254              ||' (select dcsrje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dcsrje from FC74 '
    255              ||'  where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' and dclx=''00'' group by AFA101) dc '
    256              ||' where dc.BankOCode=a.BankOCode  ) dcsrje,'
    257              ||' (select dcsrje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dcsrje from FC74 '
    258              ||'  where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' and dclx=''L1'' group by AFA101) dc '
    259              ||' where dc.BankOCode=a.BankOCode  ) zhlxsr,'
    260              ||' (select dcsrje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dcsrje from FC74 '
    261              ||'  where AFC015= '''||sDate||''' and AAA010= '''||gAAA010||''' and dclx=''L2'' group by AFA101) dc '
    262              ||' where dc.BankOCode=a.BankOCode  ) dchlxsr,'
    263              ||' (select count(*) from fc75 where AAA010= '''||gAAA010
    264              ||''' and afc015= '''||sDate||''' and AFA101=a.BankOCode) tfsrbs, '
    265              ||' (select tfje from (select AFA101 BankOCode,sum(nvl(AFC064,0)) tfje from FC75 '
    266              ||' where afc015= '''||sDate||''' and AAA010= '''||gAAA010||''' group by AFA101) tf '
    267              ||' where tf.BankOCode=a.BankOCode ) tfsrje, '
    268 
    269              ||' (select count(*) from fc75 where AAA010= '''||gAAA010
    270              ||''' and afc015= '''||sDate||''' and AFA101=a.BankOCode and afc066=''0'') zhtfsrbs, '
    271              ||' (select tfje from (select AFA101 BankOCode,sum(nvl(AFC064,0)) tfje from FC75 '
    272              ||' where afc015= '''||sDate||''' and AAA010= '''||gAAA010||''' and afc066=''0'' group by AFA101) tf '
    273              ||' where tf.BankOCode=a.BankOCode ) zhtfsrje, '
    274 
    275              ||' (select count(*) from FC84 where AAA010='''||gAAA010
    276              ||''' and AFC015='''||sDate||''' and AFA101=a.BankOCode) dccmbs,'
    277 
    278              ||'(select dccmje from (select AFA101 BankOCode,sum(nvl(AFC011,0)) dccmje from FC84 '
    279              ||' where AFC015='''||sDate||'''  and AAA010='''||gAAA010
    280              ||''' group by AFA101) dccm where dccm.BankOCode=a.BankOCode ) dccmje, '
    281 
    282              ||' (select afc183 from (select afc201 BankOcode,sum(nvl(afc183, 0)) afc183 from fc88 '
    283              ||'  where aaa010 ='''|| gAAA010
    284              ||''' and afc015 ='''||sDate
    285              ||'''      and aaz100 = ''2'''
    286              ||' group by Afc201) dwfc where dwfc.BankOCode = a.BankOCode) dwjfcfcsr, '
    287 
    288              ||' (select afc183 from (select afa101 BankOcode,sum(nvl(afc183, 0)) afc183 from fc88 '
    289              ||' where aaa010 ='''|| gAAA010
    290              ||''' and afc015 ='''||sDate
    291              ||''' and aaz100 = ''1'''
    292              ||' group by Afa101) dwfc where dwfc.BankOCode = a.BankOCode) dwjfcfrsr '
    293 
    294              ||' from   '
    295 
    296              ||' (select c.afa101 BankOCode from '
    297              ||' (select fyhdm BankOCode from DCJGZK where FCJYEAR=to_number('''||gYear||''') '
    298              ||'  and FCJTERM=to_number('''||gMonth||''') '
    299              ||'  and FCJRI=to_number('''||gDay||''') and FIFCJ=0 '
    300              ||' union '
    301              ||' select AFC153 BankOCode from fc76 where AAA010='''||gAAA010||''' and AFC015='''||sDate||''' group by AFC153  '
    302              ||' union '
    303              ||' select AFA101 BankOCode from fc74 where AAA010='''||gAAA010||''' and AFC015='''||sDate||''' group by AFA101 '
    304              ||' union '
    305              ||' select AFA101 BankOCode from fc84 where AAA010='''||gAAA010||''' and fsfqr=''0'' and AFC015='''||sDate||''' group by AFA101 '
    306              ||' union '
    307              --正常、待查、待查查明 add at 2015年6月19日<start----->
    308              ||' select abp202 BankOCode from bp01 where (select min(f.aaa010) from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp01.abp205)='''||gAAA010||''' and abp101  ='''||sDate||''' group by abp202 '
    309              ||' union '
    310              ||' select abp202 BankOCode from bp02 where (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp02.abp205)='''||gAAA010||''' and abp101 ='''||sDate||''' group by abp202 '
    311              ||' union '
    312              ||' select abp202 BankOCode from bp04 where (select min(f.aaa010) from bp04 b,fpos02 f where b.abp205=f.aaa003 and b.abp205=bp04.abp205)='''||gAAA010||''' and abp101='''||sDate||''' group by abp202 '
    313              ||' union '
    314              --<end----->
    315              ||' select AFA101 BankOCode from fc75    where AAA010='''||gAAA010||'''  and afc015='''||sDate||''' group by AFA101 '
    316              ||' union '
    317              ||' select afa101 BankOCode from fc88 where aaa010 = '''||gAAA010||''' and afc015 = '''||sDate||''' and aaz100 = ''1'' group by Afa101 '
    318              ||' union '
    319              ||' select afc201 BankOCode from fc88 where aaa010 = '''||gAAA010||''' and afc015 =  '''||sDate||''' and aaz100 = ''2'' group by Afc201 '
    320              ||' ) b,'
    321              ||' fa22 c  where b.BankOCode=c.afa101 and c.aaa010='''||gAAA010||''' ) a) ';
    322 
    323      open csrCommon for strSQL;
    324      fetch csrCommon into sBankOCode,szcsrbs,szcsrje,fzcsrposbs,fzcsrposje,fdcsrposbs,fdcsrposje,fdccmposbs,fdccmposje,sdcsrbs,sdcsrje,szhlxsr,sdchlxsr,stfsrbs,stfsrje,zhstfsrbs,zhstfsrje,syhye,sdccmje,sdccmbs,sdwjfcfcsr,sdwjfcfrsr;
    325      while csrCommon%FOUND   Loop
    326 
    327        -- 是否已接收审核则不统计
    328          if not isAuditing(gAAA010,sBankOCode,gYear,gMonth,gDay) then
    329 
    330          --删除DCJGZK(会计核算_采集跟踪库)中某家银行指定日期的采集记录
    331          delete from DCJGZK where aaa010=gAAA010 and fyhdm=sBankOCode and  FCJYEAR=To_number(gYear) and FCJTERM=To_number(gMonth) and FCJRI=To_number(gDay);
    332 
    333 
    334         if not  (szcsrbs=0 and fzcsrposbs=0 and fdcsrposbs=0 and fdccmposbs=0 and sdcsrbs=0 and stfsrbs=0 and sdccmbs=0 and szhlxsr=0 and sdchlxsr=0 and sdwjfcfcsr=0 and sdwjfcfrsr=0) then
    335 
    336 
    337          --校验fc76表和fc74表,如有错误则将该银行数据退回,Continue继续处理下面数据
    338          strTemp:='select datatype,yhbm,yhmc, '''||sDate||''' as afc015, jkshm,zje,xmhjje,lsh,err,'''||gAAA010||''' as czqh from ('
    339                    ||' select ''正常收入数据'' as dataType,a.yhbm,yhmc,a.jkshm,a.zje,a.xmhjje,'''' lsh,''总金额不等于项目合计金额'' err from'
    340                    ||' (select fa22.AFA101 yhbm,fa22.AFA102 yhmc,fc76.AFC001 jkshm,fc76.AFC157 zje,sum(fc76.AFC181) xmhjje'
    341                    ||'  from fc76,fa22 where fc76.AFC153=fa22.AFA101 and fc76.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''''
    342                    ||' and fc76.AFC015='''||sDate||''' and fc76.AFC153='''||sBankOCode||''' group by fa22.AFA101,fa22.AFA102,AFC001,AFC157) a'
    343                    ||' where a.ZJE<>a.XMHJJE '
    344                    ||' union all '
    345                    --bp01表《正常收入》中  总金额不等于项目合计金额的数据
    346                    ||' select ''正常收入数据'' as dataType,a.yhbm,yhmc,a.jkshm,a.zje,a.xmhjje,'''' lsh,''总金额不等于项目合计金额'' err from'
    347                    ||' (select fe20.afa051 yhbm,fe20.afa052 yhmc,fe20.afc001 jkshm,bp01.abp201 zje,fe20.afc157 xmhjje'
    348                    ||' from bp01,fe20 where bp01.afc501=fe20.afc501 and (select f.aaa010 from bp01 b,fpos02 f where b.abp205=f.aaa003 and b.abp205= bp01.abp205)='''||gAAA010||''''
    349                    ||' and bp01.abp101='''||sDate||''' and bp01.abp203='''||sBankOCode||''' group by fe20.afa051,fe20.afa052,fe20.afc001,bp01.abp201,fe20.afc157) a'
    350                    ||' where a.ZJE<>a.XMHJJE '
    351                    ||' union all '
    352                    ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''缺收款人全称项'' as err'
    353                    ||' from fc74,fa22 where fc74.AFA101=fa22.AFA101 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||''' and fc74.AFA101='''||sBankOCode||''''
    354                    ||' and trim(fc74.AFC002) is null '
    355                    ||' union all '
    356                    ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''缺收款人开户行项'' as err'
    357                    ||' from fc74,fa22'
    358                    ||' where fc74.AFA101=fa22.AFA101 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||'''  and fc74.AFC015='''||sDate||'''  and trim(fc74.AFC003) is null '
    359                    ||'  union all '
    360                    ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''缺收款人账号项'' as err'
    361                    ||' from fc74,fa22 '
    362                    ||' where fc74.AFA101=fa22.AFA101 and fc74.AAA010='''||gAAA010||'''  and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||'''  and trim(fc74.AFC004) is null '
    363                    ||' union all '
    364                    --缺票号项 bp02表中的票号均为空
    365                    ||' select ''待查收入数据'' as dataType,fe20.afa051 yhbm,fe20.afa052 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fe20.afc150 lsh,''缺票号项'' as err '
    366                    ||' from fe20 '
    367                    ||' where fe20.afc015 ='''||sDate||''' '
    368                    ||' union all '
    369                    --收款金额不大于0
    370                    ||' select ''待查收入数据'' as dataType,fe20.afa051 yhbm,fe20.afa052 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,bp02.AFC401 lsh,''bp02收费金额不大于0'' err'
    371                    ||' from bp02,fe20 '
    372                    ||' where bp02.abp203=fe20.afc153 and bp02.abp201<=0 and (select min(f.aaa010) from bp02 b,fpos02 f where b.abp205=f.aaa003 and b.abp205= bp02.abp205)='''||gAAA010||''' and bp02.abp101='''||sDate||''' and bp02.abp203='''||sBankOCode||''' '
    373                    ||' union all '
    374                    ||' select ''待查收入数据'' as dataType,fa22.AFA101 yhbm,fa22.AFA102 as yhmc,'''' as jkshm,0 as zje,0 as xmhjje,fc74.AFC401 lsh,''收费金额不大于0'' err'
    375                    ||' from fc74,fa22 '
    376                    ||' where fc74.AFA101=fa22.AFA101 and fc74.AFC011<=0 and fc74.AAA010='''||gAAA010||''' and fa22.AAA010='''||gAAA010||''' and fc74.AFC015='''||sDate||'''  and fc74.AFA101='''||sBankOCode||''''
    377                    ||' ) order by dataType,yhbm,yhmc,jkshm,lsh ';
    378         
    379         open csrCheck for strTemp;
    380         fetch csrCheck into sdatatype,syhbm,syhmc,sdate,sjkshm,szje,sxmhjje,slsh,serr,sczqh;
    381         if  csrCheck%found then
    382              strTmp:='delete from banktran where afc015='''||sdate||''' and yhbm ='''||syhbm||''' ';
    383              execute immediate strTmp;
    384              strTmp:='insert into banktran(datatype,yhbm,yhmc,afc015,jkshm,zje,xmhjje,lsh,err,aaa010) '
    385                       ||strTemp;
    386              execute immediate strTmp;
    387              -- 退回银行
    388              backbank(gAAA010,sBankOCode,sDate);
    389              gResult:='1';
    390         else
    391 
    392          --记跟踪采集数据
    393           intFXH:=to_number(getnextnumber('FXH',20));
    394           insert into dcjgzk (FXH,FCJYEAR,FCJTERM,FCJRI,FIFCJ,FXQ,FZCSRJE,FZCSRBS,SZCSRPOSJE,SZCSRPOSBS,SDCSRPOSJE,SDCSRPOSBS,SDCCMPOSJE,SDCCMPOSBS,
    395           FDCSRJE,FDCSRBS,FTFSRJE,FTFSRBS,FCZZZS,fdccmje,fdccmbs,fyhdm,aaa010,fzhlxsr,fdchlxsr,zhftfsrbs,zhftfsrje,dwjfcfcsr,dwjfcfrsr) values (intFXH,To_number(gYear),To_number(gMonth),
    396           To_number(gDay),0,sWeek,szcsrje,szcsrbs,fzcsrposje,fzcsrposbs,fdcsrposje,fdcsrposbs,fdccmposje,fdccmposbs,sdcsrje,sdcsrbs,stfsrje,stfsrbs,syhye,sdccmje,sdccmbs,sBankOCode,gAAA010,szhlxsr,sdchlxsr,zhstfsrbs,zhstfsrje,sdwjfcfcsr,sdwjfcfrsr);
    397        end if;
    398        close csrCheck;
    399        end if;
    400        end if;
    401        fetch csrCommon into sBankOCode,szcsrbs,szcsrje,fzcsrposje,fzcsrposbs,fdcsrposje,fdcsrposbs,fdccmposje,fdccmposbs,sdcsrbs,sdcsrje,szhlxsr,sdchlxsr,stfsrbs,stfsrje,zhstfsrbs,zhstfsrje,syhye,sdccmje,sdccmbs,sdwjfcfcsr,sdwjfcfrsr;
    402 
    403       End Loop;
    404      close csrCommon;
    405      commit;
    406 
    407       exception  --异常处理
    408       when others then 
    409       gResult:='统计银行数据出现错误,请稍后重试!';
    410   end;
    411 end CountBankData_20150617;
  • 相关阅读:
    洛谷 P3040 [USACO12JAN]贝尔分享Bale Share
    洛谷 P1994 有机物燃烧
    洛谷 P3692 [PUB1]夏幻的考试
    洛谷 P2117 小Z的矩阵
    洛谷 P1154 奶牛分厩
    洛谷 P1718 图形复原
    洛谷 P1900 自我数
    洛谷 P1964 【mc生存】卖东西
    洛谷 P1123 取数游戏
    hdu_2844_Coins(多重背包)
  • 原文地址:https://www.cnblogs.com/lowerCaseK/p/Demo_procedure.html
Copyright © 2011-2022 走看看