我遇到了一个大块收集sql的问题,我希望您能提供帮助。
使用以下代码:
declare cursor c1 is select customer,product from products; type type_cust is table of products.customer%type; type type_prod is table of products.product%type; v_array_cust type_cust; v_array_prod type_prod; begin open c1; loop fetch c1 into v_array_cust, v_array_prod limit 1000; exit when c1%notfound; for i in 1..v_array_cust.count loop --Do some processing here. end loop; end loop; end; /
游标c1返回53166行。
但是,代码处理53000行,然后结束。似乎在检索最后的166条记录时,会出现某种故障。
如果发现少于1000条记录,提取是否将返回%notfound?我应该将出口移到循环的末尾吗?(我将尝试这种方法,但要深入到一段代码中,它需要3个小时才能到达故障点。)
提前致谢。
好吧,比我已经做的更好的谷歌搜索给了我答案,你不应该使用%notfound与limit。
检查这里的解释。