oracle packages

2022/1/11 19:03:36

本文主要是介绍oracle packages,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、Packages

create or replace package SXFX is /*【运营模块】【时效报表】申请共享系统时效分析报表 */
type T_CURSOR is ref cursor;            

procedure proc_SCAN(  
  DJBH IN VARCHAR2,
  JYZTMC IN VARCHAR2,
  Re_CURSOR out T_CURSOR
);
end SXFX;

2、Package bodies

create or replace package body SXFX is


/*扫描分析*/
procedure proc_SCAN(
          DJBH IN VARCHAR2,
          JYZTMC IN VARCHAR2,
          Re_CURSOR out T_CURSOR
          )  AS
          SQLSTR VARCHAR2(5000);
          SQLWHERE VARCHAR2(200);
          BEGIN

          --单据编号         
          IF trim(DJBH) IS NOT NULL THEN
              SQLWHERE := ' AND DJBH = '''  || trim(DJBH) || ''' ';
          END IF;
 
           --单位         
          IF trim(JYZTMC) IS NOT NULL THEN
              SQLWHERE := ' AND JYZTMC = '''  || trim(JYZTMC) || ''' ';
          END IF;
 --BW_Query_SXFX

--alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

DELETE FROM BW_Query_SXFX WHERE 1 = 1;

INSERT INTO BW_Query_SXFX(DJID, DJTYPE, COrder)
SELECT DISTINCT LSRWZTLOG_DJID, LSRWZTLOG_FLBH, 1
FROM LSRWZTLOG
WHERE 1 = 1
AND LSRWZTLOG_FLBH IN ('WEBROBX', 'APFKD', 'APYFD', 'WEBROJK')
AND LSRWZTLOG_TIME > to_date('2021-7-1', 'yyyy-mm-dd hh:mi:ss') 
AND LSRWZTLOG_TIME < to_date('2021-10-1', 'yyyy-mm-dd hh:mi:ss')
--AND  LSRWZTLOG_FLBH = 'WEBROBX' ;
;

UPDATE BW_Query_SXFX SET DJLXID = (SELECT APFKD_DJLXID FROM APFKD B WHERE B.ID = BW_Query_SXFX.DJID),
DJBH = (SELECT APFKD_DJBH FROM APFKD B WHERE B.ID = BW_Query_SXFX.DJID),
Creator = (SELECT APFKD_ZDRMC FROM APFKD B WHERE B.ID = BW_Query_SXFX.DJID),
ZDQJY = (SELECT APFKD_KJND FROM APFKD B WHERE B.ID = BW_Query_SXFX.DJID),
ZDQJM = (SELECT APFKD_KJQJ FROM APFKD B WHERE B.ID = BW_Query_SXFX.DJID),
BZAmt = (SELECT APFKD_JE FROM APFKD B WHERE B.ID = BW_Query_SXFX.DJID)
WHERE EXISTS(SELECT 1 FROM APFKD C WHERE C.ID = BW_Query_SXFX.DJID)
AND DJTYPE = 'APFKD'
;

UPDATE BW_Query_SXFX SET DJLXID = (SELECT APYFD_DJLXID FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID),
DJBH = (SELECT APYFD_DJBH FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID),
Creator = (SELECT APYFD_ZDRMC FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID),
ZDQJY = (SELECT APYFD_KJND FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID),
ZDQJM = (SELECT APYFD_KJQJ FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID),
BZAmt = (SELECT APYFD_JE FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID)
--JYZTMC = (SELECT ROBXDJ_NM8 FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID),
--BMMC = (SELECT ROBXDJ_GXM2 FROM APYFD B WHERE B.ID = BW_Query_SXFX.DJID)
WHERE EXISTS(SELECT 1 FROM APYFD C WHERE C.ID = BW_Query_SXFX.DJID)
AND DJTYPE = 'APYFD'
;

UPDATE BW_Query_SXFX SET DJLXID = (SELECT ROBXDJ_BXLX FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
DJBH = (SELECT ROBXDJ_BH FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
Creator = (SELECT ROBXDJ_USER FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
JYZTMC = (SELECT ROBXDJ_NM8 FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
BMMC = (SELECT ROBXDJ_GXM2 FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
ZDQJY = (SELECT ROBXDJ_KJND FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
ZDQJM = (SELECT ROBXDJ_KJQJ FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID),
BZAmt = (SELECT ROBXDJ_BXJE FROM ROBXDJ B WHERE B.ROBXDJ_NM = BW_Query_SXFX.DJID)
WHERE EXISTS(SELECT 1 FROM ROBXDJ C WHERE C.ROBXDJ_NM = BW_Query_SXFX.DJID)
AND DJTYPE = 'WEBROBX'
;

UPDATE BW_Query_SXFX SET DJLXID = (SELECT ROYWSQ_SQLX FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
DJBH = (SELECT ROYWSQ_BH FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
Creator = (SELECT ROYWSQ_USER FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
JYZTMC = (SELECT ROYWSQ_GXM4 FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
BMMC = (SELECT ROYWSQ_GXM3 FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
ZDQJY = (SELECT ROYWSQ_KJND FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
ZDQJM = (SELECT ROYWSQ_KJQJ FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID),
BZAmt = (SELECT ROYWSQ_JKJE FROM ROYWSQ B WHERE B.ROYWSQ_NM = BW_Query_SXFX.DJID)
WHERE EXISTS(SELECT 1 FROM ROYWSQ C WHERE C.ROYWSQ_NM = BW_Query_SXFX.DJID)
AND DJTYPE = 'WEBROJK'
;





UPDATE BW_Query_SXFX SET DJLXMC = (SELECT APFKDJLX_DJMC FROM APFKDJLX B WHERE B.ID = BW_Query_SXFX.DJLXID) 
WHERE EXISTS(SELECT 1 FROM APFKDJLX C WHERE C.ID = BW_Query_SXFX.DJLXID)
AND DJTYPE = 'APFKD'
;

UPDATE BW_Query_SXFX SET DJLXMC = (SELECT APYFDJLX_DJMC FROM APYFDJLX B WHERE B.ID = BW_Query_SXFX.DJLXID) 
WHERE EXISTS(SELECT 1 FROM APYFDJLX C WHERE C.ID = BW_Query_SXFX.DJLXID)
AND DJTYPE = 'APYFD'
;

UPDATE BW_Query_SXFX SET DJLXMC = (SELECT ROBXLX_MC FROM ROBXLX B WHERE B.ROBXLX_NM = BW_Query_SXFX.DJLXID) 
WHERE EXISTS(SELECT 1 FROM ROBXLX C WHERE C.ROBXLX_NM = BW_Query_SXFX.DJLXID)
AND DJTYPE = 'WEBROBX';

UPDATE BW_Query_SXFX SET DJLXMC = (SELECT ROSQLX_MC FROM ROSQLX B WHERE B.ROSQLX_NM = BW_Query_SXFX.DJLXID) 
WHERE EXISTS(SELECT 1 FROM ROSQLX C WHERE C.ROSQLX_NM = BW_Query_SXFX.DJLXID)
AND DJTYPE = 'WEBROJK'
;

DELETE FROM BW_Query_SXFX WHERE DJLXMC IS NULL;

DELETE FROM BW_Query_SXFX WHERE DJLXMC IN ('发票核减表单', '发票红冲作废申请单','集采额度',
'甲供材付款申请单', '甲供材付款申请调整单', '甲供材结算单批', '甲供材结算单批调整单',
'开票申请单', '经营单位额度', '进度款申请单', '进项红字信息申请单', '票据冲销单',
'收款认领单', '收款认领单(冲借款/预付款)', '项目产值进度单(非上线项目)', 
'项目产值进度单(上线)'
);


UPDATE BW_Query_SXFX SET DJZT = (SELECT FSYXDJ_DJZT FROM FSYXDJ B WHERE B.FSYXDJ_DJNM = BW_Query_SXFX.DJID) 
WHERE 1 = 1;

UPDATE BW_Query_SXFX SET DJZTMC = (SELECT FSSCYWZT_ZTSM FROM fsscywzt B WHERE B.FSSCYWZT_ZT = BW_Query_SXFX.DJZT AND B.FSSCYWZT_YWLX = 'YW') 
WHERE 1 = 1;

UPDATE BW_Query_SXFX SET TJRQ = (SELECT MIN(LSRWZTLOG_TIME) FROM LSRWZTLOG B WHERE B.LSRWZTLOG_DJID = BW_Query_SXFX.DJID AND B.LSRWZTLOG_GNID = 'ZD' AND LSRWZTLOG_CZ = '10')
WHERE 1 = 1;





/*
DELETE FROM BW_Query_SXFX1 WHERE 1 = 1;

INSERT INTO BW_Query_SXFX1(DJID, GNID, CZID, CNum)
SELECT LSRWZTLOG_DJID, LSRWZTLOG_GNID, '999', COUNT(0) FROM LSRWZTLOG
WHERE LSRWZTLOG_GNID = 'FSJS' 
AND LSRWZTLOG_CZ IN ('7', '9')
AND LSRWZTLOG_DJID IN (SELECT DJID FROM BW_Query_SXFX)
GROUP BY LSRWZTLOG_DJID, LSRWZTLOG_GNID--, LSRWZTLOG_CZ
ORDER BY COUNT(0) DESC;
*/

--BW


--BW

 SQLSTR := 'SELECT 
DJLXMC AS "单据类型" 
, DJBH AS "单据编号"
, DJZTMC AS "单据状态"
, Creator AS "制单人"
, JYZTMC AS "所属中心经营主体"
, BMMC AS "所属部门"
, TJRQ AS "第一次制单提交审批时间"
, ZDQJY AS "制单期间年"
, ZDQJM AS "制单期间月"
, BZAMT AS " 报账金额"
, TIME2 AS "扫描时间"            
FROM BW_Query_SXFX  where  1=1 ';
    --IF trim(SQLWHERE) IS NOT NULL THEN
      SQLSTR := SQLSTR || SQLWHERE;
   -- END IF;

--|| sqlwhere || ' ORDER BY DJBH, COrder ';

--EXECUTE IMMEDIATE SQLSTR;
    OPEN Re_CURSOR FOR SQLSTR;
end proc_SCAN;

end SXFX;
 

 



这篇关于oracle packages的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程