程序代码如下:
create or replace function EDS.UPDATE_PRODUCT_INFO_TMP(P_msgId in NUMBER) return number is
  Result number;
  p number;
begin
     Result := 22;
     p := 21;
     FOR p in reverse 21..30 LOOP
         DBMS_OUTPUT.PUT_LINE('FOR......');
         IF Result = 1 THEN
            DBMS_OUTPUT.PUT_LINE('IF');
         ELSE IF Result = 2 THEN
              DBMS_OUTPUT.PUT_LINE('ELSE IF');
         ELSE
             DBMS_OUTPUT.PUT_LINE('ELSE');
         END IF;
      END LOOP;
  return(Result);
end UPDATE_PRODUCT_INFO_TMP;使用PL/SQL编辑后按F8进行编译是报错,内容如下:FUNCTION EDS.UPDATE_PRODUCT_INFO_TMP 编译错误错误: PLS-00103: 出现符号 "LOOP"在需要下列之一时:
        if
行: 16
文本: END LOOP;错误: 提示: Parameter 'P_msgId' 被声明但从来没有被用于 'EDS.UPDATE_PRODUCT_INFO_TMP'
行: 1
文本: create or replace function EDS.UPDATE_PRODUCT_INFO_TMP(P_msgId in NUMBER) return number is调试发现如果for循环的内部不使用if ... then ... else if ... else 的结构而是使用if.. then .. else就没有问题,这是怎么回事啊??请各位高手指教,不胜感激!