这是什么数据库的语言?解决思路

这是什么数据库的语言??我只熟悉sql,但同事发给我了一些代码不是sql的,我不知道是db2还是oracle还是mysql

这是什么数据库的语言??
我只熟悉sql,但同事发给我了一些代码不是sql的,我不知道是db2还是oracle还是mysql的,懂得人给个答复,不需要告诉我意思,告诉我是什么语言就可以了,谢谢!

create   or   replace   package   G11ii   is

    procedure   startproc;
    procedure   startproc(ptCnt   varchar2);
    --G03各项资产减值损失准备情况表
    procedure   GetG11ii
    (
              ptBegDate       date,                       --期初日期
              ptEndDate       date,                       --期末日期
              ptBbq               varchar2
    );
   


end   G11ii;
/
create   or   replace   package   body   G11ii   is
    procedure   startproc
    is
       
    begin
              startproc( '5 ');
    end   startproc;
    procedure   startproc(ptCnt   varchar2)
    is
    tStartDate   date   ;
    tEndDate       date   ;
    sBbq               varchar2(8);
    begin
            --季报
            pubrptproc.GetRptDate(ptCnt,tStartDate,tEndDate,sBbq);
 
            GetG11ii(tStartDate,tEndDate,sBbq);
           
           
    end   startproc;

   
    procedure   GetG11ii
    (
              ptBegDate       date,                       --期初日期
              ptEndDate       date,                       --期末日期
              ptBbq               varchar2
    )
    is
 
   
    begin
              delete   from   a_rpt_g11_ii
              where   bbq=ptbbq
              and     startdate=ptBegDate
              and     enddate   =ptEndDate;
             
              --贷款
              insert   into   a_rpt_g11_ii  
              select   sysdate,ptbbq,ptBegDate,ptEndDate,
                            a.ccy_ccy_cde,                                                 --币别
                          c.toinst,                                                 --机构


                         
                            decode(a.loan_grd,
                            '01 ', 'C1 ',  
                            '02 ', 'D1 ',
                            '03 ', 'F1 ',
                            '04 ', 'G1 ',
                            '05 ', 'H1 ',
                            '00 ')   ,                                 --五级分类级别
                            sum(nvl(a.os_prcp,0))                           --当前余额
            FROM       o_ln_loan   a   ,s_ln_bch_dept   b,a_rpt_add_ctrl   c
            WHERE     a.sts= 'ACTV '                                 --还未结清
            AND         a.bhdt_bch_cde   =   b.bch_cde
            AND         b.extn_bch_cde   =   c.frominst  
            AND         c.addidx   =1
            AND         c.addind   = '01 '
           
               
            AND         a.int_start_dt   <=   ptEndDate            
            AND   a.his_begin_date   <=   ptEndDate
            AND   a.his_end_date     >   ptEndDate      
            GROUP   BY     a.ccy_ccy_cde,a.loan_grd,c.toinst;
           
           
           
              --资产
             
              insert   into   a_rpt_g11_ii
              select   sysdate,ptBbq,ptBegDate   ,ptEndDate,trim(c.swccy),trim(a.brccode),b.idxno,
              sum(decode(a.BALCTRLDIR, 'D ',-1, 'C ',1,1)*(a.CURRCRBAL-a.CURRDBBAL)*b.addind)
              from   o_cb_glssubdyn   a   ,a_rpt_gl_para   b   ,s_cb_pubcurrencyinfo     c
              where   trim(a.SUBCTRLCODE)=b.item


              and   b.grpflag   = 'N '
              and   trim(b.tabind)   = 'G11II '
              and   a.ccy=   c.ccy
              and   a.trandate   =   ptenddate
              and   a.his_begin_date   <=   ptenddate
              and   a.his_end_date   >   ptenddate
              group   by   c.swccy   ,a.brccode,b.idxno;
             
              --债券
              insert   into   a_rpt_g11_ii
              select   sysdate,ptBbq,ptBegDate   ,ptEndDate,
              c.ccy,e.toinst,a.idxno,
              ---1*sum(TDBOOKVALUE   )
              -1*sum(
             
              case   when   c.invtype   =   'T '   then   0   else   1   end   *c.tdbookvalue  
              +
             
              case   when   c.invtype   =   'T '   and   c.tdmarketvalue   =0   then   1   else   0   end   *c.tdbookvalue  
             
              +
              case   when   c.invtype   =   'T '   and   c.tdmarketvalue   <> 0   then   1   else   0   end   *c.tdmarketvalue
             
              )
             
              from   a_rpt_opics_para   a,o_il_secm   b,o_il_tpos   c,o_il_cust   d,a_rpt_add_ctrl   e,
              a_rpt_opics_para_add   f,a_rpt_opics_para_add   g,a_rpt_opics_para_add   h
              where   trim(b.secid)   =   trim(c.secid)
              and   b.mdate   >   ptEndDate
              and   trim(b.issuer)   =trim(d.cno)
              and   trim(d.acctngtype)=   trim(a.para)
              and   trim(a.paratype)   =   'ACTY '
              and   trim(a.tabind)   = 'G11II '
             
             
              and   trim(b.product)   =   trim(f.para)
              and   trim(f.paratype)   =   'PROD '
              and   trim(f.tabind)   =   'G11II '


             
              and   trim(c.cost)   =trim(g.para)
              and   trim(g.paratype)   =   'COST '
              and   trim(g.tabind)   =   'G11II '
             
              and   trim(c.invtype)   =trim(h.para)
              and   trim(h.paratype)   =   'INVTYPE '
              and   trim(h.tabind)   =   'G11II '
             
              and   trim(c.br)=   e.frominst
              and   e.addidx   =3
              and   e.addind   = '01 '
              and   b.his_begin_date   <=   ptEndDate
              and   b.his_end_date     >   ptEndDate

              and   c.his_begin_date   <=   ptEndDate
              and   c.his_end_date     >   ptEndDate
             
              and   d.his_begin_date   <=   ptEndDate
              and   d.his_end_date     >   ptEndDate
              group   by   a.idxno,c.ccy,e.toinst;
             
            --折算
            insert   into   a_rpt_g11_ii
            select   sysdate,ptBbq,ptBegDate   ,ptEndDate, '998 ',inst_no,idxno,sum(TO_RMB_RATE   (ccycde,ptenddate)*bal)
            from   a_rpt_g11_ii
            where     bbq=ptbbq
            and     startdate=ptBegDate
            and     enddate   =ptEndDate
            and   ccycde   <> 'CNY '
            group   by   inst_no,idxno
            ;
           
            insert   into   a_rpt_g11_ii
            select   sysdate,ptBbq,ptBegDate   ,ptEndDate, '999 ',inst_no,idxno,sum(TO_RMB_RATE   (ccycde,ptenddate)*bal)
            from   a_rpt_g11_ii
            where     bbq=ptbbq
            and     startdate=ptBegDate
            and     enddate   =ptEndDate
           
            group   by   inst_no,idxno
            ;
             


    end   GetG11ii;
end   G11ii;
/


[解决办法]
过程与函数的比较
相同点:
通过设置OUT参数,过程和函数都可以返回一个以上的值。
过程和函数都可以具有声明段、可执行段和异常处理段。
过程和函数都可以接受缺省值。
都可以使用位置或名称对应法调用过程和函数。
过程和函数都可以接受参数NOCOPY(仅Oracle8i及更高版本支持)。
区别:
如果返回值在一个以上时,用过程为好。
如果只有一个返回值,使用函数就可以满足要求。
函数还可以从SQL语句中调用。