PLSQL-2用于嵌套表上的循环,一个接一个,第二个循环不执行,而第一个循环的嵌套表是空的。下面是代码片段:
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;发布于 2022-08-03 08:54:52
我理解空嵌套表上的FOR循环将引发异常,因此我在每个FOR循环之前添加了以下条件
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;https://stackoverflow.com/questions/73218489
复制相似问题