foreach循環體控制
通常情況下,在程式中的cursor定義之前,整合了l_sql變量后,轉化sql語句時,通過檢查STATUS的值來判斷sql語句是否有錯誤。
語句如:
if STATUS then call cl_err() return end if
當sql語句正確的時候,STATUS=0,那麼if後面的語句不會執行。否則就返回值,退出這段控制。
在定義cursor后,設定一個變量l_flag='N',foreach循環完整語句:
foreach cursor_name into 變量,變量
let l_flag='Y' exit foreach
end foreach
if l_flag='Y' then
call cl_err() return
end if
這裡從循環體內看出,只抓了一筆資料就設定了變量值,然後退出循環,通過檢查設定的值,產生報錯信息,并退出這段控制
可是在通過erp系統debug時,發現foreach在循環抓資料時,如果抓出的第一筆資料為空,而且循環體裡面又沒有寫判斷后contiune,那麼循環題裡面的語句將不會執行。如下圖