首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于嵌套表上的循环的PLSQL -2

用于嵌套表上的循环的PLSQL -2
EN

Stack Overflow用户
提问于 2022-08-03 08:22:40
回答 1查看 30关注 0票数 0

PLSQL-2用于嵌套表上的循环,一个接一个,第二个循环不执行,而第一个循环的嵌套表是空的。下面是代码片段:

代码语言:javascript
复制
type prod_seq_array is table of wiz_customer_hp_product.product_seq%type;
c_prod_add_arr    prod_seq_array := prod_seq_array ();
c_prod_drop_arr   prod_seq_array := prod_seq_array (1234,5678);
      FOR i IN c_prod_add_arr.FIRST .. c_prod_add_arr.LAST LOOP
      mydebug2.debug_out(fp,'shira2 ' ||wo_prod_rec_1.product_seq);
         if v_prod_seq = c_prod_add_arr(i) then
            v_status := 'C';
            ins_hp_prod_svc;
            v_drop_wo_date := v_add_date;
            exit;
         end if;
      END LOOP;
      FOR i IN c_prod_drop_arr.FIRST .. c_prod_drop_arr.LAST LOOP
         if v_prod_seq = c_prod_drop_arr(i) then
            v_status := 'C';
            del_hp_prod_svc_hist ;
            v_drop_wo_date := v_drop_date;
            exit;
         end if;
      END LOOP;
EN

回答 1

Stack Overflow用户

发布于 2022-08-03 08:54:52

我理解空嵌套表上的FOR循环将引发异常,因此我在每个FOR循环之前添加了以下条件

代码语言:javascript
复制
if c_prod_add_arr.count > 0 
  FOR i IN c_prod_add_arr.FIRST .. c_prod_add_arr.LAST LOOP
     if v_prod_seq = c_prod_add_arr(i) then
        v_status := 'C';
        ins_hp_prod_svc;
        v_drop_wo_date := v_add_date;
        exit;
     end if;
  END LOOP;
end if;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73218489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档