for j in 1..v_tab.count-1 loop
    for k in j+1..v_tab.count loop
      if v_tab(j).m_Before(v_tab(k))then 
        continue;
      elsif v_tab(j).m_After(v_tab(k)) then
         vt_temp := v_tab(j);
         v_tab(j) := v_tab(k);
         v_tab(k) := vt_temp;     
      
在pl/sql中执行时,报错:pls-00201 必须说明标识符continue,请问这是什么原因呢?

解决方案 »

  1.   

    循环出错,loop应当有对应的end loop
      

  2.   

    for j in 1..v_tab.count-1 loop    for k in j+1..v_tab.count loop      if v_tab(j).m_Before(v_tab(k))then 
            continue;--oracle中没有continue;这样类似于java中的东东
          elsif v_tab(j).m_After(v_tab(k)) then
             vt_temp := v_tab(j);
             v_tab(j) := v_tab(k);
             v_tab(k) := vt_temp;  
          end if;--结束if语句
       end loop;--结束内层for循环
    end loop;--结束外层for循环    
      

  3.   

    支持楼上的,oracle里面没有continue,break
      

  4.   

    没有CONTINUE
    可以用GOTO实现,参考下以下文章
    http://zzh.javaeye.com/blog/321592
      

  5.   

    --11g开始支持continue了
    --11g以下使用goto来代替continue,注意goto到的标签后必须是一个执行语句for j in 1..v_tab.count-1 loop
        for k in j+1..v_tab.count loop
          if v_tab(j).m_Before(v_tab(k))then 
            goto next;
          elsif v_tab(j).m_After(v_tab(k)) then
             vt_temp := v_tab(j);
             v_tab(j) := v_tab(k);
             v_tab(k) := vt_temp;  
          end if;
          ....
          <<next>>
          null;
        end loop;
    end loop;
      

  6.   

    恩 我印象中10G用的是 goto 而不是continue