很简单呀!
   把else if的空格和E去掉如
   即ELSIF
if(v_Num<=0) then
    if(v_length<=5) then
   insert into serialno(prefix,cursn,interval) 
                values(v_prefix,v_prefix||'0001',1);
    ELSIF (v_length=6) then
   insert into serialno(prefix,cursn,interval) 
                values(v_prefix,v_prefix||'00001',1);
    ELSIF (v_length=7) then
   insert into serialno(prefix,cursn,interval) 
                values(v_prefix,v_prefix||'000001',1);
    ELSIF (v_length=8) then
   insert into serialno(prefix,cursn,interval) 
                values(v_prefix,v_prefix||'0000001',1);
    ELSIF (v_length=9) then
   insert into serialno(prefix,cursn,interval) 
                values(v_prefix,v_prefix||'00000001',1);
    else
     insert into serialno(prefix,cursn,interval) 
                values(v_prefix,v_prefix||'000000001',1);
    end if;
end if;

解决方案 »

  1.   

    if(v_length<=5) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0001',1);
        else if(v_length=6) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00001',1);
        else if(v_length=7) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000001',1);
        else if(v_length=8) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0000001',1);
        else if(v_length=9) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00000001',1);
        else
         insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000000001',1);
        end if;
    把所有的 else if 语句改为:ELSEIF语句
    因为在ORACLE中,有一个ELSEIF的语句,中间是没有空格的
      

  2.   

    在问一下,如果用switch()...case...
    怎么用?非常感谢!!
      

  3.   

    if(v_Num<=0) then
      CASE v_length
        when (v_length<=5) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0001',1);
        when 6 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00001',1);
        when 7 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000001',1);
        when 8 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0000001',1);
        when 9 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00000001',1);
        else
         insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000000001',1);
        end case;
    end if;9i以上才支持
      

  4.   

    if(v_Num<=0) then
      CASE v_length
        when (v_length<=5) then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0001',1);
        when 6 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00001',1);
        when 7 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000001',1);
        when 8 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0000001',1);
        when 9 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00000001',1);
        else
         insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000000001',1);
        end case;
    end if;9i以上才支持
      

  5.   

    sorry,改成以下
    if(v_Num<=0) then
     <<here>>
      CASE 
        when v_length<=5 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0001',1);
        when v_length=6 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00001',1);
        when v_length=7 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000001',1);
        when v_length=8 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'0000001',1);
        when v_length=9 then
       insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'00000001',1);
        else
         insert into serialno(prefix,cursn,interval) 
                    values(v_prefix,v_prefix||'000000001',1);
     end case here;
    end if;