程序代码如下:
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就没有问题,这是怎么回事啊??请各位高手指教,不胜感激!
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就没有问题,这是怎么回事啊??请各位高手指教,不胜感激!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货