oracle游标的使用

create or replace procedure proc_ReportSelect_TB(in_FYear int,in_FPeriod  int )  --,error out  varchar2

is
     

/*  SELECT FAuditedStatus FROM T_RPT_Report WHERE FID IN ( 'F54+HKmNRRmaEH+v+ML8XwdY8J8=' )

SELECT "T0"."FID" "ID", "T0"."FAUDITORID" "T1.ID", "T0"."FCOMMITTEDSTATUS" "COMMITTEDSTATUS", "T0"."FSOURCETYPE" "SOURCETYPE", "T0"."FCSLREPORTID" "T2.ID" 
       FROM "T_RPT_REPORT" "T0" WHERE "T0"."FID" = ( 'F54+HKmNRRmaEH+v+ML8XwdY8J8=' )
update T_rpt_Report  set FAuditedStatus = ?,FAuditorId = ?,FAuditedTime = ? where fid = ?
update T_CSL_CslReport  set FAuditedStatus = ?,FAuditorId = ?,FAuditedTime = ? where fid = ?


SELECT FAuditedStatus FROM T_CSL_CslReport WHERE fname='财务主要指标月报表-集团分析(分板块)' and fnumber='301-9-0005'  */

 -- v_deptno in dept.deptno%type   
 --v_deptno 是定义的变量,dept是数据库里面存在的表,表里面有一个deptno字段,然后%type就是deptno的数据类型。
 --通俗理解就是让v_deptno这个变量的类型与数据库里面的表字段的类型匹配,从而不必担心类型不匹配的问题。
 
  v_Company_FName  VARCHAR2(100);
  v_Company_FNumber  VARCHAR2(100);
  v_FYear  int;
  v_FPeriod  int; 
  v_ZCZE  number(18,0);
  v_FZZE  number(18,0);
  v_JZE   number(18,0);
  v_ZCFZL  VARCHAR2(100);
  v_NDYS_SR  number(18,0);
  v_BNLJ_SR  number(18,0);
  v_SNTQ_SR  number(18,0);
  v_NDYS_JLV  number(18,0);
  v_BNLJ_JLV  number(18,0);
  v_SNTQ_JLV  number(18,0);
  v_NDYS_XSLR  VARCHAR2(100);
  v_BNLJ_XSLR  VARCHAR2(100);
  v_SNTQ_XSLR  VARCHAR2(100);
  cnt   int;

--Report_cursor SYS_REFCURSOR; 
 CURSOR Report_cursor is 
                select  t.公司 Company_FName,                          -----         公司名称
                   t.公司编码 Company_FNumber,                    -----         公司编码  
                   t.年   FFYear ,                                 ----所属年
                   t.期间 FFPeriod ,                               ----所属期间   
                   sum(nvl(t.资产总额,0)) ZCZE,                   -----ZCZE         资产总额
                   sum(nvl(t.负债总额,0)) FZZE,                   -----FZZE         负债总额
                   sum(nvl(t.净资产,0)) JZE,                      -----JZE          净资产
                   '' ZCFZL ,                                     -----ZCFZL        资产负债率
                   '' NDYS_SR,                                    -----NDYS_SR      年度预算_收入
                   sum(nvl(t.本年累计_收入,0)) BNLJ_SR,           -----BNLJ_SR      本年累计_收入
                   sum(nvl(t.上年同期_收入,0)) SNTQ_SR,           -----SNTQ_SR      上年同期_收入
                   '' NDYS_JLV,                                   -----NDYS_JLV     年度预算_净利锐
                   sum(nvl(t.本年累计_净利锐,0)) BNLJ_JLV,        -----BNLJ_JLV     本年累计_净利锐
                   sum(nvl(t.上年同期_净利锐,0)) SNTQ_JLV,        -----SNTQ_JLV     年同期_净利锐
                   '' NDYS_XSLR,                                  -----NDYS_XSLR    年度预算_销售利润率
                   '' BNLJ_XSLR,                                  -----BNLJ_XSLR    本年累计_销售利润率
                   '' SNTQ_XSLR                                   -----SNTQ_XSLR    上年同期_销售利润率
              
               from (

            Select Company.fname_l2 公司,Company.FNumber 公司编码,ItemDataBd.FYear 年,ItemDataBd.FPeriod 期间,round(sum(nvl(detailEntry.F45,0))/10000)  资产总额,round(sum(nvl(detailEntry.F80,0))/10000) 负债总额,null 净资产,null 本年累计_收入,null 上年同期_收入,null  本年累计_净利锐,null  上年同期_净利锐 
              From T_CSL_ItemDataEntry001 detailEntry
              inner join T_Csl_ItemDataEntry ItemDataBd on ItemDataBd.FID = detailEntry.FID 
              Inner join T_Csl_ItemData ItemDataHd on ItemDataHd.FID = ItemDataBd.FItemDataID 
              inner join T_Csl_RptReceived RptReceived on RptReceived.FReportID = ItemDataHd.FReportID  --T_Csl_RptReceived报表接收记录 
              inner join T_ORG_Tree tree on tree.fid= RptReceived.FOrgTreeID  --T_ORG_Tree合并范围 
              left join T_Bd_Currency cy on ItemDataHd.FCurrencyID = cy.FID  
              left join T_Bd_Currency cy1 on ItemDataHd.FTargetCurrencyID = cy1.FID  --T_Org_BaseUnit组织 
              left join T_Org_BaseUnit Company on ItemDataHd.FCompanyID = Company.FID 
              inner join t_csl_dataelement d on d.fInterSeq = ItemDataBd.FDataElement
              Where ItemDataHd.FIsAdjusted in (0,1,2) -- 0表示调整前,1表示调整分录,2表示调整后 
                AND tree.FNumber = 'SQHB' 
                AND Company.FNumber in ('306','SQJT004','SQJT005','SQJT003','SQJT006','410','420','450','430','SQJT011','SQSY02','SQSY04','440','470','480','460','SQJT001','SQSY01','301','SQKG001','SQKH002','KGHB')  
                AND cy.Fnumber in ('RMB')  
                and cy1.Fnumber in ('RMB') 
                AND ItemDataHd.FPeriodType = 3 --填写期间类型,具体见备注
                AND (ItemDataHd.FDataSource in ( 1,3)) --填写来源类型,具体见备注       ---个别报表
                And ( ItemDataBd.FValueType = 1 ) --1:金额 2:数量 3:文本 
                AND  d.fnumber in ('ENDBALANCE') --取数类型编码    
                AND ItemDataBd.FYear = in_FYear --报表所属年度
                AND ItemDataBd.FPeriod = in_FPeriod --报表所属期间
             group by Company.fname_l2,Company.FNumber,ItemDataBd.FYear,ItemDataBd.FPeriod


            Union All


            Select Company.fname_l2 公司,Company.FNumber 公司编码 ,ItemDataBd.FYear 年,ItemDataBd.FPeriod 期间,null 资产总额, null 负债总额,round(sum(nvl(detailEntry.F329,0))/10000) 净资产 ,null  本年累计_收入,null 上年同期_收入,null 本年累计_净利锐 ,null  上年同期_净利锐
              From T_CSL_ItemDataEntry002 detailEntry
              inner join T_Csl_ItemDataEntry ItemDataBd on ItemDataBd.FID = detailEntry.FID 
              Inner join T_Csl_ItemData ItemDataHd on ItemDataHd.FID = ItemDataBd.FItemDataID 
              inner join T_Csl_RptReceived RptReceived on RptReceived.FReportID = ItemDataHd.FReportID  --T_Csl_RptReceived报表接收记录 
              inner join T_ORG_Tree tree on tree.fid= RptReceived.FOrgTreeID  --T_ORG_Tree合并范围 
              left join T_Bd_Currency cy on ItemDataHd.FCurrencyID = cy.FID  
              left join T_Bd_Currency cy1 on ItemDataHd.FTargetCurrencyID = cy1.FID  --T_Org_BaseUnit组织 
              left join T_Org_BaseUnit Company on ItemDataHd.FCompanyID = Company.FID 
              inner join t_csl_dataelement d on d.fInterSeq = ItemDataBd.FDataElement
              Where ItemDataHd.FIsAdjusted in (0,1,2) -- 0表示调整前,1表示调整分录,2表示调整后 
                AND tree.FNumber = 'SQHB' 
                AND Company.FNumber in ('306','SQJT004','SQJT005','SQJT003','SQJT006','410','420','450','430','SQJT011','SQSY02','SQSY04','440','470','480','460','SQJT001','SQSY01','301','SQKG001','SQKH002','KGHB') 
                AND cy.Fnumber in ('RMB')  
                and cy1.Fnumber in ('RMB') 
                AND ItemDataHd.FPeriodType = 3 --填写期间类型,具体见备注
                AND (ItemDataHd.FDataSource in ( 1,3)) --填写来源类型,具体见备注       ---个别报表
                And ( ItemDataBd.FValueType = 1 ) --1:金额 2:数量 3:文本 
                AND  d.fnumber in ('ENDBALANCE') --取数类型编码    
                AND ItemDataBd.FYear = in_FYear --报表所属年度
                AND ItemDataBd.FPeriod =in_FPeriod  --报表所属期间
                group by Company.fname_l2,Company.FNumber,ItemDataBd.FYear,ItemDataBd.FPeriod


            Union All

            Select Company.fname_l2 公司,Company.FNumber 公司编码 ,ItemDataBd.FYear 年,ItemDataBd.FPeriod 期间,null 资产总额, null 负债总额,null 净资产 ,round(sum(nvl(detailEntry.F331,0))/10000 )  本年累计_收入,null 上年同期_收入,null 本年累计_净利锐 ,null  上年同期_净利锐
              From T_CSL_ItemDataEntry002 detailEntry
              inner join T_Csl_ItemDataEntry ItemDataBd on ItemDataBd.FID = detailEntry.FID 
              Inner join T_Csl_ItemData ItemDataHd on ItemDataHd.FID = ItemDataBd.FItemDataID 
              inner join T_Csl_RptReceived RptReceived on RptReceived.FReportID = ItemDataHd.FReportID  --T_Csl_RptReceived报表接收记录 
              inner join T_ORG_Tree tree on tree.fid= RptReceived.FOrgTreeID  --T_ORG_Tree合并范围 
              left join T_Bd_Currency cy on ItemDataHd.FCurrencyID = cy.FID  
              left join T_Bd_Currency cy1 on ItemDataHd.FTargetCurrencyID = cy1.FID  --T_Org_BaseUnit组织 
              left join T_Org_BaseUnit Company on ItemDataHd.FCompanyID = Company.FID 
              inner join t_csl_dataelement d on d.fInterSeq = ItemDataBd.FDataElement
              Where ItemDataHd.FIsAdjusted in (0,1,2) -- 0表示调整前,1表示调整分录,2表示调整后 
                AND tree.FNumber = 'SQHB' 
                AND Company.FNumber in ('306','SQJT004','SQJT005','SQJT003','SQJT006','410','420','450','430','SQJT011','SQSY02','SQSY04','440','470','480','460','SQJT001','SQSY01','301','SQKG001','SQKH002','KGHB') 
                AND cy.Fnumber in ('RMB')  
                and cy1.Fnumber in ('RMB') 
                AND ItemDataHd.FPeriodType = 3 --填写期间类型,具体见备注
                AND (ItemDataHd.FDataSource in ( 1,3)) --填写来源类型,具体见备注       ---个别报表
                And ( ItemDataBd.FValueType = 1 ) --1:金额 2:数量 3:文本 
                AND  d.fnumber in ('YTDAMOUNT') --取数类型编码    
                AND ItemDataBd.FYear =in_FYear --报表所属年度
                AND ItemDataBd.FPeriod = in_FPeriod --报表所属期间
                group by Company.fname_l2,Company.FNumber,ItemDataBd.FYear,ItemDataBd.FPeriod

            Union All

            Select Company.fname_l2 公司,Company.FNumber 公司编码 ,ItemDataBd.FYear 年,ItemDataBd.FPeriod 期间,null 资产总额, null 负债总额,null 净资产 ,null  本年累计_收入,round(sum(nvl(detailEntry.F331,0))/10000) 上年同期_收入,null  本年累计_净利锐,null  上年同期_净利锐
              From T_CSL_ItemDataEntry002 detailEntry
              inner join T_Csl_ItemDataEntry ItemDataBd on ItemDataBd.FID = detailEntry.FID 
              Inner join T_Csl_ItemData ItemDataHd on ItemDataHd.FID = ItemDataBd.FItemDataID 
              inner join T_Csl_RptReceived RptReceived on RptReceived.FReportID = ItemDataHd.FReportID  --T_Csl_RptReceived报表接收记录 
              inner join T_ORG_Tree tree on tree.fid= RptReceived.FOrgTreeID  --T_ORG_Tree合并范围 
              left join T_Bd_Currency cy on ItemDataHd.FCurrencyID = cy.FID  
              left join T_Bd_Currency cy1 on ItemDataHd.FTargetCurrencyID = cy1.FID  --T_Org_BaseUnit组织 
              left join T_Org_BaseUnit Company on ItemDataHd.FCompanyID = Company.FID 
              inner join t_csl_dataelement d on d.fInterSeq = ItemDataBd.FDataElement
              Where ItemDataHd.FIsAdjusted in (0,1,2) -- 0表示调整前,1表示调整分录,2表示调整后 
                AND tree.FNumber = 'SQHB' 
                AND Company.FNumber in ('306','SQJT004','SQJT005','SQJT003','SQJT006','410','420','450','430','SQJT011','SQSY02','SQSY04','440','470','480','460','SQJT001','SQSY01','301','SQKG001','SQKH002','KGHB') 
                AND cy.Fnumber in ('RMB')  
                and cy1.Fnumber in ('RMB') 
                AND ItemDataHd.FPeriodType = 3 --填写期间类型,具体见备注
                AND (ItemDataHd.FDataSource in ( 1,3)) --填写来源类型,具体见备注       ---个别报表
                And ( ItemDataBd.FValueType = 1 ) --1:金额 2:数量 3:文本 
                AND  d.fnumber in ('LYAMOUNT') --取数类型编码    
                AND ItemDataBd.FYear = in_FYear --报表所属年度
                AND ItemDataBd.FPeriod = in_FPeriod  --报表所属期间
                group by Company.fname_l2,Company.FNumber,ItemDataBd.FYear,ItemDataBd.FPeriod
                


            Union All

            Select Company.fname_l2 公司,Company.FNumber 公司编码 ,ItemDataBd.FYear 年,ItemDataBd.FPeriod 期间,null 资产总额, null 负债总额,null 净资产 ,null  本年累计_收入,null 上年同期_收入,round(sum(nvl(detailEntry.F334,0))/10000)  本年累计_净利锐,null  上年同期_净利锐
              From T_CSL_ItemDataEntry002 detailEntry
              inner join T_Csl_ItemDataEntry ItemDataBd on ItemDataBd.FID = detailEntry.FID 
              Inner join T_Csl_ItemData ItemDataHd on ItemDataHd.FID = ItemDataBd.FItemDataID 
              inner join T_Csl_RptReceived RptReceived on RptReceived.FReportID = ItemDataHd.FReportID  --T_Csl_RptReceived报表接收记录 
              inner join T_ORG_Tree tree on tree.fid= RptReceived.FOrgTreeID  --T_ORG_Tree合并范围 
              left join T_Bd_Currency cy on ItemDataHd.FCurrencyID = cy.FID  
              left join T_Bd_Currency cy1 on ItemDataHd.FTargetCurrencyID = cy1.FID  --T_Org_BaseUnit组织 
              left join T_Org_BaseUnit Company on ItemDataHd.FCompanyID = Company.FID 
              inner join t_csl_dataelement d on d.fInterSeq = ItemDataBd.FDataElement
              Where ItemDataHd.FIsAdjusted in (0,1,2) -- 0表示调整前,1表示调整分录,2表示调整后 
                AND tree.FNumber = 'SQHB' 
                AND Company.FNumber in ('306','SQJT004','SQJT005','SQJT003','SQJT006','410','420','450','430','SQJT011','SQSY02','SQSY04','440','470','480','460','SQJT001','SQSY01','301','SQKG001','SQKH002','KGHB') 
                AND cy.Fnumber in ('RMB')  
                and cy1.Fnumber in ('RMB') 
                AND ItemDataHd.FPeriodType = 3 --填写期间类型,具体见备注
                AND (ItemDataHd.FDataSource in ( 1,3)) --填写来源类型,具体见备注       ---个别报表
                And ( ItemDataBd.FValueType = 1 ) --1:金额 2:数量 3:文本 
                AND  d.fnumber in ('YTDAMOUNT') --取数类型编码    
                AND ItemDataBd.FYear = in_FYear --报表所属年度
                AND ItemDataBd.FPeriod = in_FPeriod  --报表所属期间
                group by Company.fname_l2,Company.FNumber ,ItemDataBd.FYear,ItemDataBd.FPeriod  

            Union All

            Select Company.fname_l2 公司,Company.FNumber 公司编码 ,ItemDataBd.FYear 年,ItemDataBd.FPeriod 期间,null 资产总额, null 负债总额,null 净资产 ,null  本年累计_收入,null 上年同期_收入,null  本年累计_净利锐,round(sum(nvl(detailEntry.F334,0))/10000)  上年同期_净利锐
              From T_CSL_ItemDataEntry002 detailEntry
              inner join T_Csl_ItemDataEntry ItemDataBd on ItemDataBd.FID = detailEntry.FID 
              Inner join T_Csl_ItemData ItemDataHd on ItemDataHd.FID = ItemDataBd.FItemDataID 
              inner join T_Csl_RptReceived RptReceived on RptReceived.FReportID = ItemDataHd.FReportID  --T_Csl_RptReceived报表接收记录 
              inner join T_ORG_Tree tree on tree.fid= RptReceived.FOrgTreeID  --T_ORG_Tree合并范围 
              left join T_Bd_Currency cy on ItemDataHd.FCurrencyID = cy.FID  
              left join T_Bd_Currency cy1 on ItemDataHd.FTargetCurrencyID = cy1.FID  --T_Org_BaseUnit组织 
              left join T_Org_BaseUnit Company on ItemDataHd.FCompanyID = Company.FID 
              inner join t_csl_dataelement d on d.fInterSeq = ItemDataBd.FDataElement
              Where ItemDataHd.FIsAdjusted in (0,1,2) -- 0表示调整前,1表示调整分录,2表示调整后 
                AND tree.FNumber = 'SQHB' 
                AND Company.FNumber in ('306','SQJT004','SQJT005','SQJT003','SQJT006','410','420','450','430','SQJT011','SQSY02','SQSY04','440','470','480','460','SQJT001','SQSY01','301','SQKG001','SQKH002','KGHB') 
                AND cy.Fnumber in ('RMB')  
                and cy1.Fnumber in ('RMB') 
                AND ItemDataHd.FPeriodType = 3 --填写期间类型,具体见备注
                AND (ItemDataHd.FDataSource in ( 1,3)) --填写来源类型,具体见备注       ---个别报表
                And ( ItemDataBd.FValueType = 1 ) --1:金额 2:数量 3:文本 
                AND  d.fnumber in ('LYAMOUNT') --取数类型编码    
                AND ItemDataBd.FYear = in_FYear --报表所属年度
                AND ItemDataBd.FPeriod = in_FPeriod  --报表所属期间
                group by Company.fname_l2,Company.FNumber ,ItemDataBd.FYear,ItemDataBd.FPeriod  

            ) t   group by t.公司,t.公司编码, t.年,t.期间;
  
----声明第二个游标
 CURSOR cursor_insert2 IS 
              SELECT Company_FName,
                     Company_FNumber,
                     FYear,
                     FPeriod, 
                     ZCZE,
                     FZZE ,JZE ,
                     ZCFZL ,
                     NDYS_SR ,
                     BNLJ_SR ,
                     SNTQ_SR ,
                     NDYS_JLV ,
                     BNLJ_JLV ,
                     SNTQ_JLV ,
                     NDYS_XSLR  ,
                     BNLJ_XSLR ,
                     SNTQ_XSLR 
                 from ReportQueryUICTEx_Tb where FYear=in_FYear and FPeriod = in_FPeriod;
 

 
begin
    -- error := '';
     delete from ReportQueryUICTEx_Tb   where FYear=in_FYear  and fperiod=in_FPeriod;
     delete from ReportItemAmounSelectt_Tb   where FYear=in_FYear  and fperiod=in_FPeriod;
  select count(*) into cnt from ReportQueryUICTEx_Tb   where FYear=in_FYear  and fperiod=in_FPeriod;
  if cnt=0 then
   begin   --第一个游标开始
     --开启游标传递参数
     oPEN Report_cursor ;
          LOOP
          --循环开始               
          FETCH Report_cursor INTO  v_Company_FName  ,
                                    v_Company_FNumber ,
                                    v_FYear  ,  --- v_FPeriod
                                    v_FPeriod  ,
                                    v_ZCZE  ,
                                    v_FZZE  ,
                                    v_JZE  ,
                                    v_ZCFZL  ,
                                    v_NDYS_SR  ,
                                    v_BNLJ_SR ,
                                    v_SNTQ_SR  ,
                                    v_NDYS_JLV  ,
                                    v_BNLJ_JLV  ,
                                    v_SNTQ_JLV  ,
                                    v_NDYS_XSLR  ,
                                    v_BNLJ_XSLR  ,
                                    v_SNTQ_XSLR ;
           --退出循环的条件
          EXIT WHEN Report_cursor%NOTFOUND OR Report_cursor%NOTFOUND IS NULL; 

                --  error := v_Company_FName;
    
              /* create table ReportQueryUICTEx_Tb(
                     Company_FName  VARCHAR2(100),
                     Company_FNumber  VARCHAR2(100),
                FYear  VARCHAR2(100),
                FPeriod  VARCHAR2(100),
                ZCZE  number(18,0),
                FZZE  number(18,0),
                JZE  number(18,0),
                ZCFZL  VARCHAR2(100),
                NDYS_SR  number(18,0),
                BNLJ_SR  number(18,0),
                SNTQ_SR  number(18,0),
                NDYS_JLV  number(18,0),
                BNLJ_JLV  number(18,0),
                SNTQ_JLV  number(18,0),
                NDYS_XSLR  VARCHAR2(100),
                BNLJ_XSLR  VARCHAR2(100),
                SNTQ_XSLR  VARCHAR2(100)
                     );     
                  
                      */

       
                     insert into ReportQueryUICTEx_Tb (Company_FName, Company_FNumber, FYear,FPeriod,  ZCZE,
                                                       FZZE ,JZE , ZCFZL , NDYS_SR ,BNLJ_SR ,
                                                       SNTQ_SR , NDYS_JLV ,BNLJ_JLV ,SNTQ_JLV ,NDYS_XSLR  ,
                                                       BNLJ_XSLR ,SNTQ_XSLR ) 
                         values(  v_Company_FName  ,v_Company_FNumber , v_FYear  , v_FPeriod  , v_ZCZE  ,
                                  v_FZZE  , v_JZE  ,v_ZCFZL  ,v_NDYS_SR  ,v_BNLJ_SR ,
                                  v_SNTQ_SR  ,v_NDYS_JLV  ,v_BNLJ_JLV  ,v_SNTQ_JLV  ,v_NDYS_XSLR  ,
                                  v_BNLJ_XSLR  ,v_SNTQ_XSLR);
                                                    
          
                                           
                                 
               END LOOP;
      CLOSE Report_cursor;
   
   
         update ReportQueryUICTEx_Tb set ZCFZL= round(substr(decode(ZCZE,0,0,FZZE/ZCZE),0,7)*100,2)||'%'  ,
                                                   BNLJ_XSLR= round(substr(decode(BNLJ_SR,0,0,BNLJ_JLV/ BNLJ_SR),0,7)*100,2)||'%',
                                                   SNTQ_XSLR= round(substr(decode(SNTQ_SR,0,0,SNTQ_JLV/SNTQ_SR),0,7)*100,2)||'%'
                           where   v_FYear = in_FYear --报表所属年度
                                   AND v_FPeriod = in_FPeriod ; --报表所属期间
end;

    ----第二个游标
      begin
          --循环开始
          LOOP
           IF NOT cursor_insert2%ISOPEN  THEN
           OPEN cursor_insert2;
           END IF; 
        
        FETCH cursor_insert2 INTO  v_Company_FName  ,
                                   v_Company_FNumber ,
                                   v_FYear  ,
                                   v_FPeriod  ,
                                   v_ZCZE  ,
                                   v_FZZE  ,
                                   v_JZE  ,
                                   v_ZCFZL  ,
                                   v_NDYS_SR  ,
                                   v_BNLJ_SR ,
                                   v_SNTQ_SR  ,
                                   v_NDYS_JLV  ,
                                   v_BNLJ_JLV  ,
                                   v_SNTQ_JLV  ,
                                   v_NDYS_XSLR  ,
                                   v_BNLJ_XSLR  ,
                                   v_SNTQ_XSLR ;
        --退出循环的条件
        EXIT WHEN cursor_insert2%NOTFOUND OR cursor_insert2%NOTFOUND IS NULL; 
        

          
/*        create table ReportItemAmounSelectt_Tb(
        Company_FName  VARCHAR2(100),
        Company_FNumber  VARCHAR2(100),
        FYear  VARCHAR2(100),
        FPeriod  VARCHAR2(100),
        item_name  VARCHAR2(100),   --项目名称
        item_number  VARCHAR2(100), --项目代码
        get_Method    VARCHAR2(100), --取值方式
        item_Amount  VARCHAR2(100)   --项目金额
       );
    */

     /*          -----ZCZE         资产总额
                  -----FZZE         负债总额
                  -----JZE          净资产
                  -----ZCFZL        资产负债率
                  -----NDYS_SR      年度预算_收入
                  -----BNLJ_SR      本年累计_收入
                  -----SNTQ_SR      上年同期_收入
                  -----NDYS_JLV     年度预算_净利锐
                  -----BNLJ_JLV     本年累计_净利锐
                  -----SNTQ_JLV     上年同期_净利锐
                  -----NDYS_XSLR    年度预算_销售利润率
                  -----BNLJ_XSLR    本年累计_销售利润率
                  -----SNTQ_XSLR    上年同期_销售利润率    */   
                   
                   
                   
                   
                
                   

               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'资产总额',
                              '0010460','ENDBALANCE', v_ZCZE   );
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'负债总额',
                              '0010810','ENDBALANCE', v_FZZE   );            
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'净资产',
                              '0010960','ENDBALANCE', v_JZE   );    
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'资产负债率',
                              '负债总额/资产总额','', v_JZE   );      
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'年度预算_收入',
                              '1010010','YTDAMOUNT', v_NDYS_SR   );     
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'本年累计_收入',
                              '0020010','YTDAMOUNT', v_BNLJ_SR   );   
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'上年同期_收入',
                              '0020010','LYAMOUNT', v_SNTQ_SR   );                 
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'年度预算_净利锐',
                              '1010310','YTDAMOUNT', v_NDYS_JLV   );                  
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'本年累计_净利锐',
                              '0020310','YTDAMOUNT', v_BNLJ_JLV   );    
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'上年同期_净利锐',
                              '0020310','LYAMOUNT', v_SNTQ_JLV   );                   
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'年度预算_销售利润率',
                              '年度预算_净利锐/年度预算_收入','',  nvl(v_NDYS_XSLR,'')  );              
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method, item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'本年累计_销售利润率',
                              '本年累计_净利锐/本年累计_收入','',nvl(v_BNLJ_XSLR,'')  );        
               insert into ReportItemAmounSelectt_Tb (Company_FName,Company_FNumber, FYear, FPeriod,item_name,
                                                 item_number,get_Method,  item_Amount ) 
                     values( v_Company_FName  , v_Company_FNumber , v_FYear  ,v_FPeriod  ,'上年同期_销售利润率',
                              '上年同期_净利锐/上年同期_收入','',   nvl(v_SNTQ_XSLR,'')   );       
   
                      
      END LOOP;
      CLOSE cursor_insert2;
   END;

  
end if;

END proc_ReportSelect_TB;

/*declare
 name varchar(20);
 age int;
begin
  age :=10;
  proc_ReportSelect_TB(age,name);
  dbms_output.put_line(name);
end  ;

select * from ReportQueryUICTEx_Tb
select fid,fname_l2 from T_Org_BaseUnit where fnumber='306'*/
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值