下面是 Stoed 程序,其错误如下
错误(51,5):PLS-00103:在期望以下其中一项时遇到符号“异常”:( begin case statements else elsif end exit for goto if loop mod null pragma raise return select update while with << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge json_exists json_value json_query json_object json_array
create or replace PROCEDURE GET_SAPID_CREATION_INFO
AS
ERROR_CODE NUMBER;
ERROR_MESSAGE NVARCHAR2(200);
VAR_SAPID_COUNT NUMBER;
VAR_ROW_ID NUMBER;
VAR_COUNT NUMBER;
BEGIN
SELECT COUNT(1)
INTO VAR_COUNT
FROM TBL_PRE_POST_HOTO
WHERE CREATION_SAPID IS NULL
AND SAPID_REMARKS NOT LIKE '%Sap Id :-%';
-- create log table 'start' 'End'
INSERT INTO TBL_CMP_SAP_ID_ERRORLOG
(
USERNAME, SAP_ID, ERROR_MESSAGE, ERROR_TYPE, LOG_DATE)
VALUES('SCHEDULER','', 'SCHDULER STARTED','', SYSDATE);
COMMIT;
IF VAR_COUNT > 0 THEN
for cur_sapid in (
select SAP_ID,
UNIQUEID,
CRNO,
CMP_ID,
PROCESS_REMARK
FROM APP_WFM.SAPID_INPUTDATA_ENODEB
)
loop
update TBL_PRE_POST_HOTO
set CREATION_SAPID = cur_sapid.SAP_ID,
SAPID_REMARKS = cur_sapid.PROCESS_REMARK
where ID = cur_sapid.CMP_ID;
COMMIT;
end loop;
EXCEPTION
WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := SUBSTR(SQLERRM, 1, 200);
ROLLBACK;
END;
INSERT INTO TBL_CMP_SAP_ID_ERRORLOG
(
USERNAME, SAP_ID, ERROR_MESSAGE, ERROR_TYPE, LOG_DATE)
VALUES('SCHEDULER',cur_sapid.SAP_ID, ERROR_CODE||' : '||ERROR_MESSAGE, ERROR_CODE, SYSDATE);
COMMIT;
END;
END GET_SAPID_CREATION_INFO;
BEGIN ... [EXCEPTION] ... END
、IF ... END IF
、FOR ... IN ... LOOP ... END LOOP
等您的代码(仅包含流程控制语句)是:
create or replace PROCEDURE GET_SAPID_CREATION_INFO
AS
...
BEGIN
IF ... THEN
for ... in ( ... )
loop
...
end loop;
EXCEPTION
WHEN OTHERS THEN
...
END;
END;
END GET_SAPID_CREATION_INFO;
你有:
IF
没有对应的 END IF
。END
陈述。要修复此问题,请添加
END IF
语句并删除倒数第二个没有匹配 END
语句的 BEGIN
语句。