报错信息: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;