1.该脚本为PCISS项目的sguf冲销脚本:

 DECLARE
type typ_sguf_table is table of sguf_rowid_tab_1%rowtype ;
sguf_tab typ_sguf_table;
v_insert_sql cLOB;
BEGIN
SELECT * BULK COLLECT INTO sguf_tab
FROM sguf_rowid_tab_1 s
WHERE s.ID=1053235 AND s.NO='BSD20170901000054' ;
IF sguf_tab.last >1 THEN
RETURN ;
ELSE
FOR i IN sguf_tab.first .. sguf_tab.last LOOP v_insert_sql :='
INSERT INTO sguf_rowid_tab_1
VALUES ('||
sguf_tab(i).ID ||' , '||
chr(39)||sguf_tab(i).PRODUCTCODE||chr(39) ||' , '||
chr(39)||sguf_tab(i).NO||chr(39) ||' , '||
chr(39)||sguf_tab(i).SUBNO||chr(39) ||' , '||
'to_date('||CHR(39)||sguf_tab(i).ACCOUNTDATE||CHR(39)||')' ||' , '||
'to_date('||CHR(39)||sguf_tab(i).DEALDATE||CHR(39)||')' ||' , '||
'to_date('||CHR(39)||sguf_tab(i).STOPDATE||CHR(39)||')' ||' , '||
chr(39)||sguf_tab(i).SIDE||chr(39) ||' , '||
sguf_tab(i).MEMBERID ||' , '||
chr(39)||sguf_tab(i).MEMBERFULLNAME||chr(39) ||' , '||
chr(39)||sguf_tab(i).MEMBERABBRNAME||chr(39) ||' , '||
chr(39)||sguf_tab(i).MEMBERCODE||chr(39) ||' , '||
chr(39)||sguf_tab(i).MEMBERPARTCODE||chr(39) ||' , '||
chr(39)||sguf_tab(i).MEMBERTYPE||chr(39) ||' , '||
chr(39)||sguf_tab(i).DEALCURRENCY||chr(39) ||' , '||
chr(39)||sguf_tab(i).DEALOUTCURRENCY||chr(39) ||' , '||
CASE WHEN sguf_tab(i).EXCHANGERATE IS NULL THEN 'NULL' ELSE sguf_tab(i).EXCHANGERATE END ||' , '||
CASE WHEN sguf_tab(i).DEALPRICE<>0 THEN '-'||sguf_tab(i).DEALPRICE ELSE '' END ||' , '||
CASE WHEN sguf_tab(i).DEALPRICECNY<>0 THEN '-'||sguf_tab(i).DEALPRICECNY ELSE '' END ||' , '||
CASE WHEN sguf_tab(i).DEALPRICEUSD <>0 THEN '-'||sguf_tab(i).DEALPRICEUSD ELSE '' END ||' , '||
CASE WHEN sguf_tab(i).MEMBERFEEPRICE <>0 THEN '-'||sguf_tab(i).MEMBERFEEPRICE ELSE '' END ||' , '||
CASE WHEN sguf_tab(i).MEMBERFEEPRICECNY <>0 THEN '-'||sguf_tab(i).MEMBERFEEPRICEcny ELSE '' END ||' , '||
CASE WHEN sguf_tab(i).MEMBERFEEPRICEUSD <>0 THEN '-'||sguf_tab(i).MEMBERFEEPRICEusd ELSE '' END ||' , '||
chr(39)||sguf_tab(i).DEPARTMENT||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PTCOUNT IS NULL THEN 'NULL' ELSE sguf_tab(i).PTCOUNT||'' END ||' , '||
'to_date('||CHR(39)||sguf_tab(i).STARTDATE||CHR(39)||')' ||' , '||
'to_date('||CHR(39)||sguf_tab(i).MATURITYDATE||CHR(39)||')' ||' , '||
CASE WHEN sguf_tab(i).RATE IS NULL THEN 'NULL' ELSE sguf_tab(i).RATE||'' END ||' , '||
CASE WHEN sguf_tab(i).SELFBROKERID IS NULL THEN 'NULL' ELSE sguf_tab(i).SELFBROKERID||'' END ||' , '||
chr(39)||sguf_tab(i).SELFBROKERCODE||chr(39) ||' , '||
chr(39)||sguf_tab(i).SELFBROKERNAME||chr(39) ||' , '||
CASE WHEN sguf_tab(i).FORMCREATORID IS NULL THEN 'NULL' ELSE sguf_tab(i).FORMCREATORID||'' END ||' , '||
chr(39)||sguf_tab(i).FORMCREATORNAME||chr(39) ||' , '||
CASE WHEN sguf_tab(i).FORMCREATORTIME IS NULL THEN 'NULL' ELSE chr(39)||sguf_tab(i).FORMCREATORTIME||chr(39) END ||' , '||
CASE WHEN sguf_tab(i).ACCOUNTDAYS IS NULL THEN 'NULL' ELSE sguf_tab(i).ACCOUNTDAYS||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID1 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID1||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE1||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME1||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY1 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY1=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY1 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY1 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY1=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY1 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD1 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD1=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD1 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT1 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT1||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID2 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID2||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE2||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME2||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY2 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY2=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY2 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY2 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY2=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYcny2 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD2 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD2=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYusd2 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT2 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT2||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID3 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID3||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE3||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME3||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY3 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY3=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY3 end ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY3 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY3=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYcny3 end ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD3 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD3=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYusd3 end ||' , '||
CASE WHEN sguf_tab(i).PERCENT3 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT3||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID4 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID4||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE4||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME4||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY4 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY4=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY4 end ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY4 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY4=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYcny4 end ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD4 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD4=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD4 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT4 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT4||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID5 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID5||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE5||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME5||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY5 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY5=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY5 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY5 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY5=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY5 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD5 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD5=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD5 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT5 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT5||'55---' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID6 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID6||'66--' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE6||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME6||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY6 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY6=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY6 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY6 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY6=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY6 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD6 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD6=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD6 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT6 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT6||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID7 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID7||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE7||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME7||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY7 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY7=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY7 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY7 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY7=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY7 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD7 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD7=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD7 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT7 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT7||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID8 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID8||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE8||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME8||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY8 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY8=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY8 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY8 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY8=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY8 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD8 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD8=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD8 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT8 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT8||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID9 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID9||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE9||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME9||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY9 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY9=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY9 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY9 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY9=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY9 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD9 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD9=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD9 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT9 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT9||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERID10 IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID10||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODE10||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAME10||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEY10 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY10=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEY10 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNY10 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY10=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNY10 END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSD10 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD10=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSD10 END ||' , '||
CASE WHEN sguf_tab(i).PERCENT10 IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT10||'' END ||' , '||
CASE WHEN sguf_tab(i).BROKERIDX IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERIDX||'' END ||' , '||
chr(39)||sguf_tab(i).BROKERCODEX||chr(39) ||' , '||
chr(39)||sguf_tab(i).BROKERNAMEX||chr(39) ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYX IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYX=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYX END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYCNYX IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNYX=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYCNYX END ||' , '||
CASE WHEN sguf_tab(i).PARTYMONEYUSDX IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSDX=0 THEN '' ELSE '-'||sguf_tab(i).PARTYMONEYUSDX END ||' , '||
CASE WHEN sguf_tab(i).PERCENTX IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENTX||'' END ||' , '||
'NULL' ||' , '||
'NULL' ||' , '||
chr(39)||sguf_tab(i).REM||chr(39) ||' , '||
chr(39)||sguf_tab(i).BONDGP||chr(39) ||' , '||
chr(39)||sguf_tab(i).TAXRATE||chr(39) ||' , '||
chr(39)||sguf_tab(i).TAXWAY||chr(39) ||' , '||
CASE WHEN sguf_tab(i).TAXPRICE = 0 THEN '' ELSE '-'||sguf_tab(i).TAXPRICE END ||' , '||
CASE WHEN sguf_tab(i).TAXPRICECNY =0 THEN '' ELSE '-'||sguf_tab(i).TAXPRICECNY END ||' , '||
CASE WHEN sguf_tab(i).TAXPRICEUSD =0 THEN '' ELSE '-'||sguf_tab(i).TAXPRICEUSD END ||' , '||
CASE WHEN sguf_tab(i).COMPANYFEEPRICE =0 THEN '' ELSE '-'||sguf_tab(i).COMPANYFEEPRICE END ||' , '||
CASE WHEN sguf_tab(i).COMPANYFEEPRICECNY =0 THEN '' ELSE '-'||sguf_tab(i).COMPANYFEEPRICECNY END ||' , '||
CASE WHEN sguf_tab(i).COMPANYFEEPRICEUSD =0 THEN '' ELSE '-'||sguf_tab(i).COMPANYFEEPRICEUSD END
||') ;' ; END LOOP;
END IF ;
INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE(NO,Strsql) VALUES ('BSD20170908000830',v_insert_sql);
--dbms_output.put_line(v_insert_sql);
END ;

2.该脚本为sguf与mian表的数据核对脚本:

 SELECT
sguf.sgufmaxid,
MAINtab.no,
MAINtab.ma_memberid,
MAINtab.BSFLAG,
MAINtab.maFEEPRICE,
sguf.sguffeeprice,
(MAINtab.maFEEPRICE-abs(sguf.sguffeeprice)) AS balanceFreePrice,
MAINtab.maFEEPRICEcny,
sguf.sguffeepricecny,
(MAINtab.maFEEPRICEcny-abs(sguf.sguffeepricecny)) AS balanceFreePricecny,
MAINtab.maFEEPRICEusd,
sguf.sguffeepriceusd,
(MAINtab.maFEEPRICEusd-abs(sguf.sguffeepriceusd)) AS balanceFreePricecusd
FROM (
SELECT M.NO, 'B' AS BSFLAG, m.buyerid AS ma_memberid ,
M.BUYERFEEPRICE maFEEPRICE ,M.BUYERFEEPRICEcny maFEEPRICEcny ,M.BUYERFEEPRICEusd maFEEPRICEusd FROM HIS_PRODUCT_DEAL_MAIN M
WHERE M.STATE = 9
-- AND M.BUYERID = 1216
-- AND M.PRODUCTID = 4
AND TO_CHAR(M.CREATETIME, 'yyyymmdd') BETWEEN '' AND ''
UNION ALL
SELECT M.NO, 'L' AS BSFLAG,m.sellerid AS ma_memberid,
M.sellerFEEPRICE maFEEPRICE ,M.sellerFEEPRICEcny maFEEPRICEcny ,M.sellerFEEPRICEusd maFEEPRICEusd
FROM HIS_PRODUCT_DEAL_MAIN M
WHERE M.STATE = 9
-- AND M.SELLERID = 1216
-- AND M.PRODUCTID = 4
AND TO_CHAR(M.CREATETIME, 'yyyymmdd') BETWEEN '' AND '' ) MAINtab ,
(
SELECT MAX(ID) AS sgufmaxid, s.no ,s.side,s.memberid,COUNT(s.no) nocount,
SUM(s.memberfeeprice) sguffeeprice,
SUM(s.memberfeepricecny) sguffeepricecny,
SUM(s.memberfeepriceusd) sguffeepriceusd
FROM SGUF_PRODUCT_DEAL_MAIN S
/* WHERE S.MEMBERID = 1216 AND to_char(s.dealdate,'yyyymmdd') BETWEEN '20171001' AND '20171031'*/
GROUP BY s.no,s.side ,s.memberid ) sguf
WHERE MAINtab.no=sguf.no(+) AND
MAINtab.bsflag=sguf.side(+) AND
MAINtab.ma_memberid=sguf.memberid(+) AND (
(MAINtab.maFEEPRICE-abs(sguf.sguffeeprice))<>0 OR
(MAINtab.maFEEPRICEcny-abs(sguf.sguffeepricecny))<>0 OR
(MAINtab.maFEEPRICEusd-abs(sguf.sguffeepriceusd))<>0 )

3.该脚本为修改sguf表中分摊错误的数据

 DECLARE
max_indexvalue INT ;
TYPE typ_rowid_table IS TABLE OF VARCHAR2(100) ;
TYPE TYP_percent_TABLE IS TABLE OF NUMBER ;
TYPE TYP_IndexValue_TABLE IS TABLE OF integer ;
TYPE typ_percent_recode IS record (
v_srNO Varchar2(100),
v_memberfeeprice number ,
v_memberfeepricecny number ,
v_memberfeepriceusd number ,
v_sum_freeprice number ,
v_sum_freepricecny number ,
v_sum_freepriceusd number ,
v_percent1 number ,
v_percent2 number ,
v_percent3 number ,
v_percent4 number ,
v_percent5 number ,
v_percent6 number ,
v_percent7 number ,
v_percent8 number ,
v_percent9 number ,
v_percent10 number
);
CURSOR sguf_cur IS SELECT sr.row_id FROM sguf_rowid_tab_1 sr /*WHERE sr.row_id='AAA+awAAFAABHs3AAC'*/ ;
--v_rowid VARCHAR2(100) ;
calc_freeprice_sum NUMBER;
calc_freepricecny_sum NUMBER;
calc_freepriceusd_sum NUMBER;
tab_rowid typ_rowid_table ;
REC_PR typ_percent_recode ;
TAB_INDEX TYP_IndexValue_TABLE := TYP_IndexValue_TABLE(NULL);
TAB_PT TYP_percent_TABLE := TYP_percent_TABLE(NULL);
v_balance NUMBER ;
v_balancecny NUMBER ;
v_balanceusd NUMBER ;
str_Fentan_sql VARCHAR2(1000);
Str_sql_Update VARCHAR2(1000);
all_sql VARCHAR2(4000); BEGIN OPEN sguf_cur ;
LOOP
FETCH sguf_cur BULK COLLECT INTO tab_rowid ;
EXIT WHEN sguf_cur%NOTFOUND ;
END LOOP ; FOR x IN tab_rowid.first .. tab_rowid.last LOOP
str_Fentan_sql :='';
Str_sql_Update := '';
max_indexvalue :=0 ;
all_sql :='';
v_balance :=0 ;
v_balancecny :=0 ;
v_balanceusd :=0 ;
calc_freeprice_sum :=0 ;
calc_freepricecny_sum :=0 ;
calc_freepriceusd_sum :=0 ;
SELECT S.NO,
S.MEMBERFEEPRICE,
S.MEMBERFEEPRICECNY,
S.MEMBERFEEPRICEUSD,
ABS(NVL(S.PARTYMONEY1, 0) + NVL(S.PARTYMONEY2, 0) +
NVL(S.PARTYMONEY3, 0) + NVL(S.PARTYMONEY4, 0) +
NVL(S.PARTYMONEY5, 0) + NVL(S.PARTYMONEY6, 0) +
NVL(S.PARTYMONEY7, 0) + NVL(S.PARTYMONEY8, 0) +
NVL(S.PARTYMONEY9, 0) + NVL(S.PARTYMONEY10, 0)) AS SUM_FREEPRICE,
ABS(NVL(S.PARTYMONEYCNY1, 0) + NVL(S.PARTYMONEYCNY2, 0) +
NVL(S.PARTYMONEYCNY3, 0) + NVL(S.PARTYMONEYCNY4, 0) +
NVL(S.PARTYMONEYCNY5, 0) + NVL(S.PARTYMONEYCNY6, 0) +
NVL(S.PARTYMONEYCNY7, 0) + NVL(S.PARTYMONEYCNY8, 0) +
NVL(S.PARTYMONEYCNY9, 0) + NVL(S.PARTYMONEYCNY10, 0)) AS SUM_FREEPRICECNY,
ABS(NVL(S.PARTYMONEYUSD1, 0) + NVL(S.PARTYMONEYUSD2, 0) +
NVL(S.PARTYMONEYUSD3, 0) + NVL(S.PARTYMONEYUSD4, 0) +
NVL(S.PARTYMONEYUSD5, 0) + NVL(S.PARTYMONEYUSD6, 0) +
NVL(S.PARTYMONEYUSD7, 0) + NVL(S.PARTYMONEYUSD8, 0) +
NVL(S.PARTYMONEYUSD9, 0) + NVL(S.PARTYMONEYUSD10, 0)) AS SUM_FREEPRICEUSD,
S.PERCENT1,
S.PERCENT2,
S.PERCENT3,
S.PERCENT4,
S.PERCENT5,
S.PERCENT6,
S.PERCENT7,
S.PERCENT8,
S.PERCENT9,
S.PERCENT10
INTO REC_PR
FROM SGUF_ROWID_TAB_1 S
WHERE s.row_id =tab_rowid(x);
--dbms_output.put_line(tab_rowid(x)); ------得到总共拆分了几个经纪人,每个经纪人的拆分比例是多少-------------
TAB_PT.delete ;
TAB_PT.extend(10);
TAB_PT(1) := REC_PR.v_percent1;
TAB_PT(2) := REC_PR.v_percent2;
TAB_PT(3) := REC_PR.v_percent3;
TAB_PT(4) := REC_PR.v_percent4;
TAB_PT(5) := REC_PR.v_percent5;
TAB_PT(6) := REC_PR.v_percent6;
TAB_PT(7) := REC_PR.v_percent7;
TAB_PT(8) := REC_PR.v_percent8;
TAB_PT(9) := REC_PR.v_percent9;
TAB_PT(10) := REC_PR.v_percent10;
TAB_INDEX.delete ; FOR I IN TAB_PT.first .. TAB_PT.last LOOP IF TAB_PT(I) IS NOT NULL THEN
TAB_INDEX.extend(1);
TAB_INDEX(TAB_INDEX.last) :=i ;
calc_freeprice_sum :=calc_freeprice_sum+ round(abs(REC_PR.v_memberfeeprice) * TAB_PT(i)/100 ,2) ;
calc_freepricecny_sum := calc_freepricecny_sum+ round(abs(REC_PR.v_memberfeepricecny) * TAB_PT(i)/100 ,2);
calc_freepriceusd_sum := calc_freepriceusd_sum+ round(abs(REC_PR.v_memberfeepriceusd) * TAB_PT(i)/100 ,2);
END IF ;
END LOOP ;
dbms_output.put_line('calc_freeprice_sum='||calc_freeprice_sum);
dbms_output.put_line('calc_freepricecny_sum='||calc_freepricecny_sum);
dbms_output.put_line('calc_freepriceusd_sum='||calc_freepriceusd_sum);
dbms_output.put_line('---------------------------------------------------------------------------');
v_balance := abs(REC_PR.v_memberfeeprice) - calc_freeprice_sum ;
v_balancecny := abs(REC_PR.v_memberfeepricecny) - calc_freepricecny_sum ;
v_balanceusd := abs(REC_PR.v_memberfeepriceusd) - calc_freepriceusd_sum ;
--max_indexvalue 拆了几个经纪人,最大经纪人编号;
max_indexvalue :=TAB_INDEX.last ;
IF REC_PR.v_sum_freeprice<>ABS(REC_PR.v_memberfeeprice) THEN
FOR i IN TAB_INDEX.first .. TAB_INDEX.last LOOP
Str_sql_Update :='UPDATE sguf_rowid_tab_1 s1 '||
'SET s1.partymoney'||TAB_INDEX(i)||'='||ROUND(REC_PR.v_memberfeeprice *TAB_PT(TAB_INDEX(i))/100,2)||
' WHERE s1.row_id ='||CHR(39)||tab_rowid(x)||CHR(39);
--EXECUTE IMMEDIATE Str_sql_Update ;
all_sql :=all_sql||Str_sql_Update||' ; '||CHR(10);
--dbms_output.put_line('all_sql='||all_sql );
END LOOP ;
--dbms_output.put_line('all_sql='||all_sql );
INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE SU
VALUES
(TAB_ROWID(X),
REC_PR.V_SRNO,
ALL_SQL,
V_BALANCE,
REC_PR.V_MEMBERFEEPRICE,
calc_freeprice_sum,
REC_PR.V_MEMBERFEEPRICEcny,
calc_freepricecny_sum,
REC_PR.V_MEMBERFEEPRICEusd,
calc_freepriceusd_sum
);
all_sql :=' ';
END IF ; IF REC_PR.v_sum_freepricecny<>ABS(REC_PR.v_memberfeepricecny) THEN
FOR i IN TAB_INDEX.first .. TAB_INDEX.last LOOP
Str_sql_Update :='
UPDATE sguf_rowid_tab_1 s1 set '||
's1.partymoneycny'||TAB_INDEX(i)||'='||round(REC_PR.v_memberfeepricecny *TAB_PT(TAB_INDEX(i))/100,2)||
' WHERE s1.row_id ='||CHR(39)||tab_rowid(x)||CHR(39);
--EXECUTE IMMEDIATE Str_sql_Update ;
all_sql :=all_sql||Str_sql_Update||' ; '||CHR(10); END LOOP ;
INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE SU
VALUES
(TAB_ROWID(X),
REC_PR.V_SRNO,
ALL_SQL,
V_BALANCE,
REC_PR.V_MEMBERFEEPRICE,
calc_freeprice_sum,
REC_PR.V_MEMBERFEEPRICEcny,
calc_freepricecny_sum,
REC_PR.V_MEMBERFEEPRICEusd,
calc_freepriceusd_sum
);
all_sql :=' '; END IF ; IF REC_PR.v_sum_freepriceusd<>ABS(REC_PR.v_memberfeepriceusd) THEN FOR i IN TAB_INDEX.first .. TAB_INDEX.last LOOP
Str_sql_Update :='
UPDATE sguf_rowid_tab_1 s1 set '||
's1.partymoneyusd'||TAB_INDEX(i)||'='||round(REC_PR.v_memberfeepriceusd *TAB_PT(TAB_INDEX(i))/100,2)||
' WHERE s1.row_id ='||CHR(39)||tab_rowid(x)||CHR(39);
--EXECUTE IMMEDIATE Str_sql_Update ;
all_sql :=all_sql||Str_sql_Update||' ; '||CHR(10);
--dbms_output.put_line('all_sql='||all_sql );
END LOOP ;
INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE SU
VALUES
(TAB_ROWID(X),
REC_PR.V_SRNO,
ALL_SQL,
V_BALANCE,
REC_PR.V_MEMBERFEEPRICE,
calc_freeprice_sum,
REC_PR.V_MEMBERFEEPRICEcny,
calc_freepricecny_sum,
REC_PR.V_MEMBERFEEPRICEusd,
calc_freepriceusd_sum
);all_sql :=' ';
END IF ;
COMMIT ;
END LOOP ;
END ;

sguf冲销脚本的实现的更多相关文章

  1. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  2. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  3. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  4. 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密

    下面的图片是我使用firefox和chrome浏览百度首页时候记录的http请求 下面是firefox: 下面是chrome: 在浏览百度首页前我都将浏览器的缓存全部清理掉,让这个场景最接近第一次访问 ...

  5. 第一个shell脚本

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好. #!/bin/bash echo "Hello World !" &quo ...

  6. Java 8 的 Nashorn 脚本引擎教程

    本文为了解所有关于 Nashorn JavaScript 引擎易于理解的代码例子. Nashorn JavaScript 引擎是Java SE 8的一部分,它与其它像Google V8 (它是Goog ...

  7. 【开源】.Net 动态脚本引擎NScript

    开源地址: https://git.oschina.net/chejiangyi/NScript 开源QQ群: .net 开源基础服务  238543768 .Net 动态脚本引擎 NScript   ...

  8. InstallShield 脚本语言学习笔记

    InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加.     一.基本语法规则      ...

  9. <译>通过PowerShell工具跨多台服务器执行SQL脚本

    有时候,当我们并没有合适的第三方工具(大部分需要付费)去管理多台数据库服务器,那么如何做最省力.省心呢?!Powershell一个强大的工具,可以很方便帮到我们处理日常的数据库维护工作 .简单的几步搞 ...

随机推荐

  1. 15-[JavaScript]-ECMAScript 1

    0.javaScript的发展历程 https://zhuanlan.zhihu.com/p/27985124 1.javaScript是什么? javaScript是一种web前端的描述语言,也是一 ...

  2. 初探JSP运行机制和与Servlet间的关系

    自己看的书,手动画的图,如果有错误,请指正,谢谢.

  3. python中while循环和for循环的定义和详细的使用方法

    1. 循环的定义,反复做某事,具有明确的开始和结束.   2. 在Python中循环有while和for两种方式: While循环:1) 语法结构 >>> while 条件: ... ...

  4. 火狐浏览器油猴子GreaseMonkey使用教程

    火狐浏览器油猴子GreaseMonkey使用教程 首先下载火狐浏览器 安装成功后用火狐浏览器打开链接,界面如下 然后搜索GreaseMonkey. 搜索结果,图标是个小猴子,然后添加到火狐浏览器,成功 ...

  5. [Unity] unity5.3 assetbundle打包及加载

    Unity5.3更新了assetbundle的打包和加载api,下面简单介绍使用方法及示例代码. 在Unity中选中一个prefab查看Inspector窗口,有两个位置可以进行assetbundle ...

  6. VS2017+CMake+OpenCV下报错 set OpenCV_FOUND to FALSE

    问题 在 VS 2017 中使用Cmake 管理项目, 使用 opencv 库, 在find package的时候出现能找到 OpenCVConfig.cmake的文件,但是设置 OpenCV_Fou ...

  7. linux上的mysql配置过程

    自己阿里云上的服务器,记录下mysql的配置过程防止后面忘记 1. 首先用apt-get工具安装mysql sudo apt-get install mysql-server sudo apt-get ...

  8. 【转】利用telnet来进行调试Skynet

    https://blog.csdn.net/WhereIsHeroFrom/article/details/80674408

  9. Stack Overflow访问问题的处理

    一直以来都有访问stackoverflow的习惯,但是老是因为js的问题让人很多操作都操作不了,而且打开的速度也很慢. 原因其实就是stackoverflow使用的google的cdn,于是想彻底一点 ...

  10. Hadoop源码阅读环境搭建(IDEA)

    拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...