CREATE OR REPLACE PROCEDURE HIGHWAY_EXCHANGE.状态回馈 IS M_COUNT NUMBER; M_COMMODITYTYPE_ID NUMBER; M_COMMODITYTYPE_PID NUMBER; M_SERVERPART_CODE VARCHAR2(500); --服务区对应的脚本 HIGHWAY_EXCHANGE.T_SYSCODE CURSOR C_SYSCODE IS SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE; M_SYSCODE C_SYSCODE%ROWTYPE; BEGIN HIGHWAY_EXCHANGE.GETCONTROLINFOS; /* COMMIT; OPEN C_SYSCODE; FETCH C_SYSCODE INTO M_SYSCODE; WHILE C_SYSCODE%FOUND LOOP M_SERVERPART_CODE := M_SYSCODE.SERVERPARTCODE; --删除重复数据 DELETE FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT A WHERE EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT B WHERE A.MACHINECODE = B.MACHINECODE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE GROUP BY MACHINECODE,SERVERPARTCODE,SHOPCODE HAVING COUNT(*) > 1) AND ROWID NOT IN (SELECT MAX(ROWID) FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT GROUP BY MACHINECODE,SERVERPARTCODE,SHOPCODE HAVING COUNT(*)>1); DELETE FROM T_CONNECTPOINT@NEWEX WHERE SERVERPARTCODE = M_SERVERPART_CODE; INSERT INTO T_CONNECTPOINT@NEWEX( CONNECTPOINT_ID,MACHINECODE,CONNECT_DATE,CONNECT_IP,SERVERPARTCODE,SHOPCODE, MACHINENAME,CONTENT,CURRAMOUNT,CURRSELLCOUNT,CURRCOMMCOUNT,CURRPRESON,COMMODITYINFO) (SELECT CONNECTPOINT_ID,MACHINECODE,CONNECT_DATE,CONNECT_IP,SERVERPARTCODE,SHOPCODE, MACHINENAME,CONTENT,CURRAMOUNT,CURRSELLCOUNT,CURRCOMMCOUNT,CURRPRESON,COMMODITYINFO FROM HIGHWAY_EXCHANGE.T_CONNECTPOINT WHERE SERVERPARTCODE = M_SERVERPART_CODE AND SHOPCODE IS NOT NULL); FETCH C_SYSCODE INTO M_SYSCODE; END LOOP; CLOSE C_SYSCODE;*/ END; ---------- CREATE OR REPLACE PROCEDURE HIGHWAY_EXCHANGE.上传程序 IS M_COUNT NUMBER; M_COMMODITYTYPE_ID NUMBER; M_COMMODITYTYPE_PID NUMBER; M_SERVERPARTCODE VARCHAR2(10); EXCEPTION_1 EXCEPTION; M_SERVERPART_CODE VARCHAR2(500); --服务区对应的脚本 HIGHWAY_EXCHANGE.T_SYSCODE CURSOR C_SYSCODE IS SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE; M_SYSCODE C_SYSCODE%ROWTYPE; BEGIN OPEN C_SYSCODE; FETCH C_SYSCODE INTO M_SYSCODE; WHILE C_SYSCODE%FOUND LOOP M_SERVERPART_CODE := M_SYSCODE.SERVERPARTCODE; --上传销售数据 仅上传最近10天数据 1.服务区编码 2.服务区销售时间 3.门店编码 --上传销售数据 /* INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA@SERVER_ORCL( SELLDATA_ID,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE, COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,CASH,CREDITCARD, TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY) SELECT DISTINCT SELLDATA_ID,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, TICKETCODE,WORKERCODE, COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE, FACTAMOUNT,LINENUM,FLAG,CASH,CREDITCARD,TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY FROM HIGHWAY_EXCHANGE.T_SELLDATA A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND SELLDATA_DATE BETWEEN SYSDATE - 36500 AND SYSDATE + 366 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA@SERVER_ORCL B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND A.LINENUM = B.LINENUM); */ --异常流水 INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE, SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE, SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT SELLDATA_ID,'SELLDATA',SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,ORDERCODE FROM HIGHWAY_EXCHANGE.T_SELLDATA A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_EXCEPTION B WHERE A.SELLDATA_DATE = B.EXCEPTION_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.COMMODITY_CODE AND B.EXCEPTIONTYPE IN ('3020','3010','3990','1050')) AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND A.LINENUM = B.LINENUM); --移动支付 INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE, SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE, FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT SELLDATA_ID,CASE WHEN TICKETBILL <> 0 OR TICKETCODE LIKE '%微%' THEN 'WECHAT_PAY' WHEN OTHERPAY <> 0 OR TICKETCODE LIKE '%(支)%' THEN 'ALI_PAY' WHEN LENGTH(ORDERCODE) > 20 THEN 'MOBILE_PAY' ELSE 'SELLDATA' END, SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,ORDERCODE FROM HIGHWAY_EXCHANGE.T_SELLDATA A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND (TICKETBILL <> 0 OR COSTBILL <> 0 OR OTHERPAY <> 0 OR TICKETCODE LIKE '%(%)%' OR LENGTH(ORDERCODE) > 20) AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND A.LINENUM = B.LINENUM); INSERT INTO HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE, SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE, FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT A.SELLDATA_ID,B.SELLDATA_TYPE,A.SELLDATA_DATE,A.SERVERPARTCODE,A.SHOPCODE,A.MACHINECODE,A.TICKETCODE, A.WORKERCODE,A.COMMODITY_CODE,A.SELLCOUNT,A.SELLPRICE,A.OFFPRICE,A.FACTAMOUNT,A.LINENUM,A.FLAG,A.ORDERCODE FROM HIGHWAY_EXCHANGE.T_SELLDATA A,HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.TICKETCODE = B.TICKETCODE AND A.LINENUM <> B.LINENUM AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA C WHERE A.SELLDATA_DATE = C.SELLDATA_DATE AND A.SERVERPARTCODE = C.SERVERPARTCODE AND A.SHOPCODE = C.SHOPCODE AND A.TICKETCODE = C.TICKETCODE AND A.LINENUM = C.LINENUM); INSERT INTO T_SELLDATA_EXTRA@SERVER_ORCL (SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE, SHOPCODE,MACHINECODE,TICKETCODE,WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE, FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC) SELECT DISTINCT SELLDATA_ID,SELLDATA_TYPE,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,COMMODITY_CODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,0,SELLDATA_EXTRA_DESC FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND NOT EXISTS(SELECT 1 FROM T_SELLDATA_EXTRA@SERVER_ORCL B WHERE A.SELLDATA_DATE = B.SELLDATA_DATE AND --A.SELLDATA_TYPE = B.SELLDATA_TYPE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE AND A.TICKETCODE = B.TICKETCODE AND NVL(A.LINENUM,1) = NVL(B.LINENUM,1)); --上传结帐数据 /*INSERT INTO HIGHWAY_EXCHANGE.T_ENDACCOUNT@SERVER_ORCL ( ENDACCOUNT_ID,ENDACCOUNT_STARTDATE,ENDACCOUNT_DATE,SERVERPARTCODE,SHOPCODE, MACHINECODE,ENDPERSONCODE,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,CASH, CREDITCARD,TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY,CASHPAY,FLAG) SELECT DISTINCT ENDACCOUNT_ID,ENDACCOUNT_STARTDATE,ENDACCOUNT_DATE,SERVERPARTCODE,SHOPCODE, MACHINECODE,ENDPERSONCODE,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,CASH, CREDITCARD,TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY,CASHPAY,FLAG FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT@SERVER_ORCL B WHERE A.ENDACCOUNT_DATE = B.ENDACCOUNT_DATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE) AND A.ENDACCOUNT_DATE IS NOT NULL;*/ --上传人员结帐数据 INSERT INTO HIGHWAY_EXCHANGE.T_PERSONSELL@SERVER_ORCL( PERSONSELL_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,STARTDATE,ENDDATE,CASHWORKER_CODE, TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,CASH,TICKETBILL,CREDITCARD, VIPPERSON,COSTBILL,OTHERPAY,CASHPAY,ENDPERSONCODE) SELECT DISTINCT PERSONSELL_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,STARTDATE,ENDDATE,CASHWORKER_CODE, TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,CASH,TICKETBILL,CREDITCARD,VIPPERSON, COSTBILL,OTHERPAY,CASHPAY,ENDPERSONCODE FROM HIGHWAY_EXCHANGE.T_PERSONSELL A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_PERSONSELL@SERVER_ORCL B WHERE A.ENDDATE = B.ENDDATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.MACHINECODE = B.MACHINECODE) AND A.ENDDATE IS NOT NULL; --上传单品报表数据 /*SELECT COUNT(1) INTO M_COUNT FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE WHERE SERVERPARTCODE = M_SERVERPART_CODE AND TRANSFER_STATE < 9 AND TRANSFER_ID > 0; IF M_COUNT > 0 THEN INSERT INTO T_COMMODITYSALE_TS@SERVER_ORCL( COMMODITYSALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE,SHOPCODE,COMMODITY_TYPE,COMMODITY_CODE, COMMODITY_NAME,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,FLAG,TRANSFER_ID) SELECT DISTINCT COMMODITYSALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE,SHOPCODE,COMMODITY_TYPE,COMMODITY_CODE, COMMODITY_NAME,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,FLAG,TRANSFER_ID FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND TRANSFER_STATE < 9 AND TRANSFER_ID > 0 AND NOT EXISTS(SELECT 1 FROM T_COMMODITYSALE_TS@SERVER_ORCL B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID = B.TRANSFER_ID); UPDATE HIGHWAY_EXCHANGE.T_COMMODITYSALE A SET TRANSFER_STATE = 9 WHERE SERVERPARTCODE = M_SERVERPART_CODE AND TRANSFER_STATE < 9 AND TRANSFER_ID > 0 AND EXISTS(SELECT 1 FROM T_COMMODITYSALE_TS@SERVER_ORCL B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.TRANSFER_ID = B.TRANSFER_ID); END IF; INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYSALE@SERVER_ORCL( COMMODITYSALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE,SHOPCODE,COMMODITY_TYPE, COMMODITY_CODE,COMMODITY_NAME,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,FLAG) SELECT DISTINCT COMMODITYSALE_ID,STARTDATE,ENDDATE,SERVERPARTCODE,SHOPCODE,COMMODITY_TYPE, COMMODITY_CODE,COMMODITY_NAME,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,FLAG FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND ENDDATE BETWEEN SYSDATE - 36500 AND SYSDATE + 366 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE@SERVER_ORCL B WHERE A.ENDDATE = B.ENDDATE AND A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.COMMODITY_CODE = B.COMMODITY_CODE) AND A.ENDDATE IS NOT NULL AND COMMODITY_CODE IS NOT NULL;*/ --异常表数据 INSERT INTO T_EXCEPTION@SERVER_ORCL( EXCEPTION_ID,EXCEPTION_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, WORKERCODE,EXCEPTIONTYPE,COMMODITY_CODE,EXCEPTIONCOUNT,EXCEPTIONAMOUNT, FLAG,APPROVE_STAFF,APPROVE_INFO,APPROVE_DATE,EXCEPTION_DESC) SELECT DISTINCT EXCEPTION_ID,EXCEPTION_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, WORKERCODE,EXCEPTIONTYPE,COMMODITY_CODE,EXCEPTIONCOUNT,EXCEPTIONAMOUNT, FLAG,APPROVE_STAFF,APPROVE_INFO,APPROVE_DATE,EXCEPTION_DESC FROM HIGHWAY_EXCHANGE.T_EXCEPTION A WHERE SERVERPARTCODE = M_SERVERPART_CODE AND EXCEPTIONTYPE NOT IN('1010','2020') AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND COMMODITY_CODE IS NOT NULL AND TRIM(TRANSLATE(EXCEPTIONTYPE,'0123456789',' ')) IS NULL AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_EXCEPTION@SERVER_ORCL B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND A.EXCEPTION_DATE = B.EXCEPTION_DATE AND A.MACHINECODE = B.MACHINECODE AND A.EXCEPTIONTYPE = B.EXCEPTIONTYPE AND A.COMMODITY_CODE = B.COMMODITY_CODE AND A.EXCEPTION_ID = B.EXCEPTION_ID); COMMIT; FETCH C_SYSCODE INTO M_SYSCODE; END LOOP; CLOSE C_SYSCODE; END ; ---------- CREATE OR REPLACE PROCEDURE HIGHWAY_EXCHANGE.交互程序 IS M_COUNT NUMBER; M_COMMODITYTYPE_ID NUMBER; M_COMMODITYTYPE_PID NUMBER; M_SERVERPARTCODE VARCHAR2(10); M_SERVERPART_CODE VARCHAR2(500); --服务区对应的脚本 HIGHWAY_EXCHANGE.T_SYSCODE CURSOR C_SYSCODE IS SELECT * FROM HIGHWAY_EXCHANGE.T_SYSCODE; M_SYSCODE C_SYSCODE%ROWTYPE; CURSOR C_INSERT_COMMODITY(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM HIGHWAY_EXCHANGE.T_COMMODITYEX@NEWEX A WHERE SERVERPARTCODE = MM_SERVERPART_CODE AND ROWNUM < 50 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_CODE = B.COMMODITY_CODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID) ORDER BY DOWNLOADDATE DESC; M_INSERT_COMMODITY C_INSERT_COMMODITY%ROWTYPE; --新插入商品游标 CURSOR C_UPDATE_COMMODITY(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM ( SELECT * FROM ( SELECT SERVERPARTCODE,COMMODITY_CODE,SERVERPARTSHOP_ID,COMMODITY_TYPE, COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RULE,COMMODITY_UNIT, COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE,CANCHANGEPRICE,ISVALID, COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE, ROW_NUMBER()OVER(PARTITION BY COMMODITY_CODE,SERVERPARTCODE,SERVERPARTSHOP_ID ORDER BY DOWNLOADDATE DESC,COMMODITYEX_ID DESC)COLNUM FROM HIGHWAY_EXCHANGE.T_COMMODITYEX@NEWEX WHERE SERVERPARTCODE = MM_SERVERPART_CODE) WHERE COLNUM = 1 ) A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_CODE = B.COMMODITY_CODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID) AND ROWNUM < 50; M_UPDATE_COMMODITY C_UPDATE_COMMODITY%ROWTYPE; --更新门店 CURSOR C_INSERT_SHOPMESSAGE(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE@NEWEX A WHERE SERVERPARTCODE = MM_SERVERPART_CODE AND ROWNUM < 50 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID) ORDER BY DOWNLOADDATE DESC; M_INSERT_SHOPMESSAGE C_INSERT_SHOPMESSAGE%ROWTYPE; CURSOR C_UPDATE_SHOPMESSAGE(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM ( SELECT * FROM ( SELECT SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE, SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID, ROW_NUMBER()OVER(PARTITION BY SERVERPARTCODE,SERVERPARTSHOP_ID ORDER BY DOWNLOADDATE DESC,SHOPMESSAGE_ID DESC)COLNUM FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE@NEWEX WHERE SERVERPARTCODE = MM_SERVERPART_CODE) WHERE COLNUM = 1 ) A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID AND SERVERPARTCODE = MM_SERVERPART_CODE) AND ROWNUM < 50; M_UPDATE_SHOPMESSAGE C_UPDATE_SHOPMESSAGE%ROWTYPE; --更新员工 CURSOR C_INSERT_SELLWORKER(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM HIGHWAY_EXCHANGE.T_SELLWORKER@NEWEX A WHERE SERVERPARTCODE = MM_SERVERPART_CODE AND ROWNUM < 50 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLWORKER B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SELLWORKERCODE = B.SELLWORKERCODE AND A.SERVERPARTCODE = MM_SERVERPART_CODE) ORDER BY DOWNLOADDATE DESC; M_INSERT_SELLWORKER C_INSERT_SELLWORKER%ROWTYPE; CURSOR C_UPDATE_SELLWORKER(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM ( SELECT * FROM ( SELECT SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT, SHOPCODE,DOWNLOADDATE,FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE, ROW_NUMBER()OVER(PARTITION BY SERVERPARTCODE,SELLWORKERCODE ORDER BY DOWNLOADDATE DESC,SELLWORKER_ID DESC)COLNUM FROM HIGHWAY_EXCHANGE.T_SELLWORKER@NEWEX WHERE SERVERPARTCODE = MM_SERVERPART_CODE) WHERE COLNUM = 1 ) A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_SELLWORKER B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SELLWORKERCODE = B.SELLWORKERCODE AND SERVERPARTCODE = MM_SERVERPART_CODE) AND ROWNUM < 50; M_UPDATE_SELLWORKER C_UPDATE_SELLWORKER%ROWTYPE; --更新快捷键 CURSOR C_INSERT_HOTKEYSET(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM HIGHWAY_EXCHANGE.T_HOTKEYSET@NEWEX A WHERE SERVERPARTCODE = MM_SERVERPART_CODE AND ROWNUM < 50 AND NOT EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_HOTKEYSET B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_BARCODE = B.COMMODITY_BARCODE AND A.SERVERPARTCODE = MM_SERVERPART_CODE) ORDER BY DOWNLOADDATE DESC; M_INSERT_HOTKEYSET C_INSERT_HOTKEYSET%ROWTYPE; CURSOR C_UPDATE_HOTKEYSET(MM_SERVERPART_CODE VARCHAR2) IS SELECT * FROM ( SELECT * FROM ( SELECT SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY, BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID, ROW_NUMBER()OVER(PARTITION BY SERVERPARTCODE,COMMODITY_BARCODE ORDER BY DOWNLOADDATE DESC,HOTKEYSET_ID DESC)COLNUM FROM HIGHWAY_EXCHANGE.T_HOTKEYSET@NEWEX WHERE SERVERPARTCODE = MM_SERVERPART_CODE) WHERE COLNUM = 1 ) A WHERE EXISTS(SELECT 1 FROM HIGHWAY_EXCHANGE.T_HOTKEYSET B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_BARCODE = B.COMMODITY_BARCODE AND A.SERVERPARTCODE = MM_SERVERPART_CODE) AND ROWNUM < 50; M_UPDATE_HOTKEYSET C_UPDATE_HOTKEYSET%ROWTYPE; BEGIN OPEN C_SYSCODE; FETCH C_SYSCODE INTO M_SYSCODE; WHILE C_SYSCODE%FOUND LOOP M_SERVERPART_CODE := M_SYSCODE.SERVERPARTCODE; --下载商品数据 条件1.商品编码 2.服务区内码 3.门店内码 OPEN C_INSERT_COMMODITY(M_SERVERPART_CODE); FETCH C_INSERT_COMMODITY INTO M_INSERT_COMMODITY; WHILE C_INSERT_COMMODITY%FOUND LOOP SELECT COUNT(*) INTO M_COUNT FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTCODE = M_INSERT_COMMODITY.SERVERPARTCODE AND COMMODITY_CODE = M_INSERT_COMMODITY.COMMODITY_CODE AND SERVERPARTSHOP_ID = M_INSERT_COMMODITY.SERVERPARTSHOP_ID; IF(M_COUNT = 0)THEN INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYEX (COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE, COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RULE, COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE, CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE,SERVERPARTSHOP_ID) (SELECT COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_RULE, COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE,CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK, METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE,SERVERPARTSHOP_ID FROM HIGHWAY_EXCHANGE.T_COMMODITYEX@NEWEX A WHERE A.COMMODITYEX_ID = M_INSERT_COMMODITY.COMMODITYEX_ID); DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX@NEWEX WHERE COMMODITYEX_ID = M_INSERT_COMMODITY.COMMODITYEX_ID; END IF; FETCH C_INSERT_COMMODITY INTO M_INSERT_COMMODITY; END LOOP; CLOSE C_INSERT_COMMODITY; OPEN C_UPDATE_COMMODITY(M_SERVERPART_CODE); FETCH C_UPDATE_COMMODITY INTO M_UPDATE_COMMODITY; WHILE C_UPDATE_COMMODITY%FOUND LOOP --更新数据 UPDATE HIGHWAY_EXCHANGE.T_COMMODITYEX SET COMMODITY_TYPE = M_UPDATE_COMMODITY.COMMODITY_TYPE, COMMODITY_BARCODE = M_UPDATE_COMMODITY.COMMODITY_BARCODE, COMMODITY_NAME = M_UPDATE_COMMODITY.COMMODITY_NAME, COMMODITY_RULE = M_UPDATE_COMMODITY.COMMODITY_RULE, COMMODITY_UNIT= M_UPDATE_COMMODITY.COMMODITY_UNIT, COMMODITY_RETAILPRICE = M_UPDATE_COMMODITY.COMMODITY_RETAILPRICE, COMMODITY_MEMBERPRICE = M_UPDATE_COMMODITY.COMMODITY_MEMBERPRICE, CANCHANGEPRICE = M_UPDATE_COMMODITY.CANCHANGEPRICE, ISVALID = M_UPDATE_COMMODITY.ISVALID, COMMODITY_EN = M_UPDATE_COMMODITY.COMMODITY_EN, ISBULK = M_UPDATE_COMMODITY.ISBULK, METERINGMETHOD = M_UPDATE_COMMODITY.METERINGMETHOD, DOWNLOADDATE = M_UPDATE_COMMODITY.DOWNLOADDATE, FLAG = M_UPDATE_COMMODITY.FLAG, BUSINESSTYPE = M_UPDATE_COMMODITY.BUSINESSTYPE WHERE SERVERPARTCODE = M_UPDATE_COMMODITY.SERVERPARTCODE AND COMMODITY_CODE = M_UPDATE_COMMODITY.COMMODITY_CODE AND DOWNLOADDATE < M_UPDATE_COMMODITY.DOWNLOADDATE AND SERVERPARTSHOP_ID = M_UPDATE_COMMODITY.SERVERPARTSHOP_ID; DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX@NEWEX WHERE SERVERPARTCODE = M_UPDATE_COMMODITY.SERVERPARTCODE AND COMMODITY_CODE = M_UPDATE_COMMODITY.COMMODITY_CODE AND SERVERPARTSHOP_ID = M_UPDATE_COMMODITY.SERVERPARTSHOP_ID; FETCH C_UPDATE_COMMODITY INTO M_UPDATE_COMMODITY; END LOOP; CLOSE C_UPDATE_COMMODITY; DELETE HIGHWAY_EXCHANGE.T_COMMODITYEX A WHERE A.COMMODITYEX_ID < (SELECT COMMODITYEX_ID FROM(SELECT * FROM HIGHWAY_EXCHANGE.T_COMMODITYEX ORDER BY DOWNLOADDATE DESC,COMMODITYEX_ID DESC)B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_CODE = B.COMMODITY_CODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID AND ROWNUM <= 1) AND EXISTS(SELECT B.DOWNLOADDATE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_CODE = B.COMMODITY_CODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID); --下载门点数据 1.服务区编码 2.门店内码 OPEN C_INSERT_SHOPMESSAGE(M_SERVERPART_CODE); FETCH C_INSERT_SHOPMESSAGE INTO M_INSERT_SHOPMESSAGE; WHILE C_INSERT_SHOPMESSAGE%FOUND LOOP SELECT COUNT(*) INTO M_COUNT FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = M_INSERT_SHOPMESSAGE.SERVERPARTCODE AND SERVERPARTSHOP_ID = M_INSERT_SHOPMESSAGE.SERVERPARTSHOP_ID ; IF(M_COUNT = 0)THEN INSERT INTO HIGHWAY_EXCHANGE.T_SHOPMESSAGE( SHOPMESSAGE_ID,SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE, SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID) (SELECT SHOPMESSAGE_ID,SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE, SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE@NEWEX A WHERE SHOPMESSAGE_ID = M_INSERT_SHOPMESSAGE.SHOPMESSAGE_ID); DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE@NEWEX WHERE SHOPMESSAGE_ID = M_INSERT_SHOPMESSAGE.SHOPMESSAGE_ID; END IF; FETCH C_INSERT_SHOPMESSAGE INTO M_INSERT_SHOPMESSAGE; END LOOP; CLOSE C_INSERT_SHOPMESSAGE; OPEN C_UPDATE_SHOPMESSAGE(M_SERVERPART_CODE); FETCH C_UPDATE_SHOPMESSAGE INTO M_UPDATE_SHOPMESSAGE; WHILE C_UPDATE_SHOPMESSAGE%FOUND LOOP UPDATE HIGHWAY_EXCHANGE.T_SHOPMESSAGE SET SHOPCODE = M_UPDATE_SHOPMESSAGE.SHOPCODE,SHOPNAME = M_UPDATE_SHOPMESSAGE.SHOPNAME, BUSINESSTYPE = M_UPDATE_SHOPMESSAGE.BUSINESSTYPE, DOWNLOADDATE = M_UPDATE_SHOPMESSAGE.DOWNLOADDATE, FLAG = M_UPDATE_SHOPMESSAGE.FLAG, VALID =M_UPDATE_SHOPMESSAGE.VALID WHERE SERVERPARTCODE = M_UPDATE_SHOPMESSAGE.SERVERPARTCODE AND SERVERPARTSHOP_ID = M_UPDATE_SHOPMESSAGE.SERVERPARTSHOP_ID AND DOWNLOADDATE < M_UPDATE_SHOPMESSAGE.DOWNLOADDATE AND SERVERPARTCODE = M_SERVERPART_CODE; DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE@NEWEX WHERE SERVERPARTCODE = M_UPDATE_SHOPMESSAGE.SERVERPARTCODE AND SERVERPARTSHOP_ID = M_UPDATE_SHOPMESSAGE.SERVERPARTSHOP_ID; FETCH C_UPDATE_SHOPMESSAGE INTO M_UPDATE_SHOPMESSAGE; END LOOP; CLOSE C_UPDATE_SHOPMESSAGE; DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE A WHERE A.SHOPMESSAGE_ID < (SELECT SHOPMESSAGE_ID FROM(SELECT * FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE ORDER BY DOWNLOADDATE DESC,SHOPMESSAGE_ID DESC)B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID AND ROWNUM <= 1) AND EXISTS(SELECT B.DOWNLOADDATE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID); --下载员工数据 1.服务区编码 2.人员编码 OPEN C_INSERT_SELLWORKER(M_SERVERPART_CODE); FETCH C_INSERT_SELLWORKER INTO M_INSERT_SELLWORKER; WHILE C_INSERT_SELLWORKER%FOUND LOOP SELECT COUNT(*) INTO M_COUNT FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE SERVERPARTCODE = M_INSERT_SELLWORKER.SERVERPARTCODE AND SELLWORKERCODE = M_INSERT_SELLWORKER.SELLWORKERCODE AND SERVERPARTCODE = M_INSERT_SELLWORKER.SERVERPARTCODE; IF(M_COUNT = 0)THEN INSERT INTO HIGHWAY_EXCHANGE.T_SELLWORKER( SELLWORKER_ID,SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE, DOWNLOADDATE,FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE) (SELECT SELLWORKER_ID,SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE, DOWNLOADDATE,FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE FROM HIGHWAY_EXCHANGE.T_SELLWORKER@NEWEX A WHERE SELLWORKER_ID = M_INSERT_SELLWORKER.SELLWORKER_ID); DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER@NEWEX WHERE SELLWORKER_ID = M_INSERT_SELLWORKER.SELLWORKER_ID; END IF; FETCH C_INSERT_SELLWORKER INTO M_INSERT_SELLWORKER; END LOOP; CLOSE C_INSERT_SELLWORKER; OPEN C_UPDATE_SELLWORKER(M_SERVERPART_CODE); FETCH C_UPDATE_SELLWORKER INTO M_UPDATE_SELLWORKER; WHILE C_UPDATE_SELLWORKER%FOUND LOOP UPDATE HIGHWAY_EXCHANGE.T_SELLWORKER SET SELLWORKERNAME = M_UPDATE_SELLWORKER.SELLWORKERNAME, PROWERRIGHT = M_UPDATE_SELLWORKER.PROWERRIGHT, SHOPCODE = M_UPDATE_SELLWORKER.SHOPCODE, DOWNLOADDATE =M_UPDATE_SELLWORKER.DOWNLOADDATE, FLAG = M_UPDATE_SELLWORKER.FLAG, VALID = M_UPDATE_SELLWORKER.VALID, SELLWORKERPASSWORD = M_UPDATE_SELLWORKER.SELLWORKERPASSWORD, DISCOUNT_RATE = M_UPDATE_SELLWORKER.DISCOUNT_RATE WHERE SERVERPARTCODE = M_UPDATE_SELLWORKER.SERVERPARTCODE AND SELLWORKERCODE = M_UPDATE_SELLWORKER.SELLWORKERCODE AND DOWNLOADDATE < M_UPDATE_SELLWORKER.DOWNLOADDATE AND SERVERPARTCODE = M_SERVERPART_CODE; DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER@NEWEX WHERE SERVERPARTCODE = M_UPDATE_SELLWORKER.SERVERPARTCODE AND SELLWORKERCODE = M_UPDATE_SELLWORKER.SELLWORKERCODE AND SERVERPARTCODE = M_SERVERPART_CODE; FETCH C_UPDATE_SELLWORKER INTO M_UPDATE_SELLWORKER; END LOOP; CLOSE C_UPDATE_SELLWORKER; DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER A WHERE A.SELLWORKER_ID < (SELECT SELLWORKER_ID FROM(SELECT * FROM HIGHWAY_EXCHANGE.T_SELLWORKER ORDER BY DOWNLOADDATE DESC,SELLWORKER_ID DESC)B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SELLWORKERCODE = B.SELLWORKERCODE AND ROWNUM <= 1) AND EXISTS(SELECT B.DOWNLOADDATE FROM HIGHWAY_EXCHANGE.T_SELLWORKER B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SELLWORKERCODE = B.SELLWORKERCODE); --快捷键交互 1.服务区编码 2.快捷键 OPEN C_INSERT_HOTKEYSET(M_SERVERPART_CODE); FETCH C_INSERT_HOTKEYSET INTO M_INSERT_HOTKEYSET; WHILE C_INSERT_HOTKEYSET%FOUND LOOP SELECT COUNT(*) INTO M_COUNT FROM HIGHWAY_EXCHANGE.T_HOTKEYSET WHERE SERVERPARTCODE = M_INSERT_HOTKEYSET.SERVERPARTCODE AND COMMODITY_BARCODE = M_INSERT_HOTKEYSET.COMMODITY_BARCODE AND SERVERPARTCODE = M_INSERT_HOTKEYSET.SERVERPARTCODE; IF(M_COUNT = 0)THEN INSERT INTO HIGHWAY_EXCHANGE.T_HOTKEYSET( HOTKEYSET_ID,SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID) (SELECT HOTKEYSET_ID,SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID FROM HIGHWAY_EXCHANGE.T_HOTKEYSET@NEWEX A WHERE HOTKEYSET_ID = M_INSERT_HOTKEYSET.HOTKEYSET_ID); DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET@NEWEX WHERE HOTKEYSET_ID = M_INSERT_HOTKEYSET.HOTKEYSET_ID; END IF; FETCH C_INSERT_HOTKEYSET INTO M_INSERT_HOTKEYSET; END LOOP; CLOSE C_INSERT_HOTKEYSET; OPEN C_UPDATE_HOTKEYSET(M_SERVERPART_CODE); FETCH C_UPDATE_HOTKEYSET INTO M_UPDATE_HOTKEYSET; WHILE C_UPDATE_HOTKEYSET%FOUND LOOP UPDATE HIGHWAY_EXCHANGE.T_HOTKEYSET SET HOTKEY = M_UPDATE_HOTKEYSET.HOTKEY, BUSINESSTYPE = M_UPDATE_HOTKEYSET.BUSINESSTYPE, DOWNLOADDATE = M_UPDATE_HOTKEYSET.DOWNLOADDATE, FLAG = M_UPDATE_HOTKEYSET.FLAG, VALID = M_UPDATE_HOTKEYSET.VALID WHERE SERVERPARTCODE = M_UPDATE_HOTKEYSET.SERVERPARTCODE AND COMMODITY_BARCODE = M_UPDATE_HOTKEYSET.COMMODITY_BARCODE AND DOWNLOADDATE < M_UPDATE_HOTKEYSET.DOWNLOADDATE AND SERVERPARTCODE = M_SERVERPART_CODE; DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET@NEWEX WHERE SERVERPARTCODE = M_UPDATE_HOTKEYSET.SERVERPARTCODE AND COMMODITY_BARCODE = M_UPDATE_HOTKEYSET.COMMODITY_BARCODE AND SERVERPARTCODE = M_SERVERPART_CODE; FETCH C_UPDATE_HOTKEYSET INTO M_UPDATE_HOTKEYSET; END LOOP; CLOSE C_UPDATE_HOTKEYSET; DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET A WHERE A.HOTKEYSET_ID < (SELECT HOTKEYSET_ID FROM(SELECT * FROM HIGHWAY_EXCHANGE.T_HOTKEYSET ORDER BY DOWNLOADDATE DESC,HOTKEYSET_ID DESC)B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_BARCODE = B.COMMODITY_BARCODE AND A.BUSINESSTYPE = B.BUSINESSTYPE AND ROWNUM <= 1) AND EXISTS(SELECT B.DOWNLOADDATE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.BUSINESSTYPE = B.BUSINESSTYPE AND A.COMMODITY_BARCODE = B.COMMODITY_BARCODE); COMMIT; FETCH C_SYSCODE INTO M_SYSCODE; END LOOP; CLOSE C_SYSCODE; DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE ISVALID = 0 AND DOWNLOADDATE < SYSDATE - 90; DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE VALID = 0 AND DOWNLOADDATE < SYSDATE - 90; DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET A WHERE A.VALID = 0 OR NOT EXISTS (SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYEX B WHERE A.SERVERPARTCODE = B.SERVERPARTCODE AND A.COMMODITY_BARCODE = B.COMMODITY_BARCODE AND A.BUSINESSTYPE = B.BUSINESSTYPE AND ISVALID = 1); DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE VALID = 0 AND DOWNLOADDATE < SYSDATE - 60; EXCEPTION WHEN others THEN DBMS_OUTPUT.PUT_LINE('连接数据库失败!'); END ;