需求:新增表: DP_ ZMMJYHWJJ01(貨物交接單),復制調配系統表:ZMMJYHWJJ01即可,主要為存盤物流憑證電子化所涉及的交接單資訊。
每天將表ZMMJYHWJJ01中實際交貨日期(ZSJJHQ)為空的資料匯入表DP_ ZMMJYHWJJ01作為未操作資料供物流憑證電子化使用。
如ZMMJYHWJJ01中資料實際交貨日期(ZSJJHQ)不為空,而DP_ZMMJYHWJJ01-ZSJJHQ為空、DP_ZMMJYHWJJ01-RESERVESTR8為空,則將表DP_ZMMJYHWJJ01中此筆資料洗掉,因為已在ERP系統完成交接單過賬操作。
存盤程序:
CREATE OR REPLACE PROCEDURE ZMMJYHWJJ01_TO_DPZMMJYHWJJ01
AS
TYPE ZMMJYHWJJ01_TO_DPZMMJYHWJJ01 IS REF CURSOR;//定義一個參考游標型別
BENGIN
OPEN SELECT_ZMMJYHWJJ01 FOR
SELECT * FROM ZMMJYHWJJ01 WHERE ZSJJHQ is null;//ZSJJHQ 資料庫欄位表示實際交貨日期
c_row SELECT_ZMMJYHWJJ01%rowtype;
FOR c_row in SELECT_ZMMJYHWJJ01
LOOP
INSERT INTO DP_ZMMJYHWJJ01(ZFHTZDH,EBELN,EBELP,GYSCH,MBLNR,ZEILE,GJAHR,BUKRS,WERKS,ZSJJHQ,c_rowJSL,MEINS,CHARG,REMARK,ZDJZT,UPGSTATUS,MATNR,ERNAM,ERNAMTXT,ZFHFQZ,ZFHFSJ,ZSHFQZ,ZFLAG,FLATXT,ZSHFSJ,LGORT,LGOBE,ZFQR,ZSPR)
VALUES (c_row.ZFHTZDH,c_row.EBELN,c_row.EBELP,c_row.GYSCH,c_row.MBLNR,c_row.ZEILE,c_row.GJAHR,c_row.BUKRS,c_row.WERKS,c_row.ZSJJHQ,c_row.c_rowJSL,c_row.MEINS,c_row.CHARG,c_row.REMARK,c_row.ZDJZT,c_row.UPGSTATUS,c_row.MATNR,c_row.ERNAM,c_row.ERNAMTXT,c_row.ZFHFQZ,c_row.ZFHFSJ,c_row.ZSHFQZ,c_row.ZFLAG,c_row.FLATXT,c_row.ZSHFSJ,c_row.LGORT,c_row.LGOBE,c_row.ZFQR,c_row.ZSPR);
EXIT WHEN SELECT_ZMMJYHWJJ01%notfound;
END LOOP;
CLOSE SELECT_ZMMJYHWJJ01;
OPRN SELECT_ZMMJYHWJJ02 FOR
SELECT * FROM ZMMJYHWJJ01 Z
LEFT JOIN DP_ZMMJYHWJJ01 DP ON DP.ZFHTZDH=Z.ZFHTZDH AND DP.ZSJJHQ IS NULL AND DP.UPGSTATUS IS NULL // ZFHTZDH主鍵ID欄位,UPGSTATUS 操作標識
WHERE Z.ZSJJHQ IS NOT NULL ;
d_row SELECT_ZMMJYHWJJ02%rowtype;
FOR d_row IN SELECT_ZMMJYHWJJ02
LOOP
DELETE FROM DP_ZMMJYHWJJ01 WHERE d_row.ZFHTZDH=DP_ZMMJYHWJJ01.ZFHTZDH;
exit when SELECT_ZMMJYHWJJ02%notfound;
END LOOP;
CLOSE SELECT_ZMMJYHWJJ02;
END;
uj5u.com熱心網友回復:
你的問題是啥呢。uj5u.com熱心網友回復:
啥問題?沒寫啊uj5u.com熱心網友回復:
6的飛起......uj5u.com熱心網友回復:
為啥要用游標實作呢
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/74949.html
標籤:開發
上一篇:問題求助!謝謝!
