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

wyl458619358 2017-08-02 08:19:55
报错信息: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;
...全文
272 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2017-08-02
  • 打赏
  • 举报
回复
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 -- 这句,最后少了一个分号
wyl458619358 2017-08-02
  • 打赏
  • 举报
回复
有人帮我看看不,不知道存储过程那里错了

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧