PROCEDURE报错,请大神帮忙看看是什么问题

报错信息:Warning: compiled but with compilation errors
CLOSE mp_info;
ORA-00900: invalid SQL statement

CREATE OR REPLACE PROCEDURE SCC_B2B.HIS_MP_INFO_PRO IS

v_from date;
v_to date;

CURSOR mp_info IS
--QTY ITEM
SELECT * from wip

mp_record mp_info%ROWTYPE;

-- Variables Declarations

var_DUPLICATE_COUNT NUMBER;

BEGIN

dw.get_lastrefresh ('HIS_MP_INFO',
                             v_from,
                             v_to);
v_from := v_from -1;
v_to :=   trunc(sysdate, 'HH'); 

OPEN mp_info;

FETCH mp_info INTO mp_record;

WHILE mp_info%FOUND LOOP

    var_DUPLICATE_COUNT   := 0;

     SELECT
                COUNT(*)
            INTO
                var_DUPLICATE_COUNT
            FROM 
                scc_b2b.his_mp_info 
            WHERE
                VENDOR_LOT_NUMBER = mp_record.VENDOR_LOT_NUMBER AND
                VER = mp_record.VER AND
                PROCESS_CODE = mp_record.PROCESS_CODE AND
                PROCESS_SEQ = mp_record.PROCESS_SEQ AND   
                ITEM_NAME = mp_record.ITEM_NAME 

      IF (var_DUPLICATE_COUNT = 0) THEN

    INSERT INTO SCC_B2B.HIS_MP_INFO (CUST,
                             CUST_CODE,
                             PKG,
                             PIN,
                             DEVICE,
                             HISILICON_ITEM,
                             PARTNAME,
                             CUST_LOT_NO,
                             WAFER_LOT_NO,
                             VENDOR_LOT_NUMBER,
                             VENDOR_SUBLOT_NUMBER,
                             VER,
                             CREATION_DATE,
                             INTERNAL_OPER,
                             PROCESS_CODE,
                             PROCESS_SEQ,
                             CATEGORY,
                             ITEM_NAME,
                             ITEM_VALUE,
                             MIN,
                             MAX,
                             SEND_FLAG)
        VALUES (mp_record.CUST,
             mp_record.CUST_CODE,
             mp_record.PKG,
             mp_record.PIN,
            mp_record.DEVICE,
             mp_record.HISILICON_ITEM,
             mp_record.PARTNAME,
             mp_record.CUST_LOT_NO,
            mp_record.WAFER_LOT_NO,
             mp_record.VENDOR_LOT_NUMBER,
             mp_record.VENDOR_SUBLOT_NUMBER,
             mp_record.VER,
             mp_record.CREATION_DATE,
             mp_record.INTERNAL_OPER,
             mp_record.PROCESS_CODE,
             mp_record.PROCESS_SEQ,
             mp_record.CATEGORY,
             mp_record.ITEM_NAME,
            mp_record.ITEM_VALUE,
             mp_record.MIN,
             mp_record.MAX,
             mp_record.SEND_FLAG);

             COMMIT;
             END IF ;
    FETCH mp_info INTO mp_record;
END LOOP;

CLOSE MP_INFO;

    Dw.Update_LastRefresh ('HIS_MP_INFO', v_to);

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
var_errmsg := NVL (SUBSTR (SQLERRM, 1, 256), 'NA');
DBMS_OUTPUT.put_line ('N' || '.' || var_errmsg);

     INSERT INTO DW_ERRLOG  (report_id,
                                     job_no,
                                     run_time,
                                     from_time,
                                     to_time,
                                     success_cd,
                                     error_desc)
          VALUES ('ADI_StartEvents',
                  1,
                 to_char(SYSDATE,'yyyymmddhh24miss'),
                  to_char(SYSDATE,'yyyymmddhh24miss'),
                  to_char(SYSDATE,'yyyymmddhh24miss'),
                  'N',
                  'FAILED'   || '.' || var_errmsg);


     COMMIT;

END;

https://blog.csdn.net/zengxuewen2045/article/details/51246704