2025-03-28 09:49:56 +08:00

662 lines
30 KiB
Plaintext

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 ;