FOR acct IN (SELECT ucracct_cust_code, ucracct_prem_code, ucracct_cycl_code, ucracct_status_ind FROM ucracct WHERE ucracct_cycl_code >= cycle_code_begin AND ucracct_cycl_code <= cycle_code_end AND (account_type = '%' OR ucracct_status_ind = account_type)) -- LOOP IF mod(rows_int, interval_int) = 0 THEN FOR chg IN (SELECT uabopen_serv_num, uabopen_srat_code, uabopen_scat_code, uabopen_charge_date, uabopen_ar_trans, uabopen_billed_chg, uabopen_balance, uabopen_budget_variance FROM uabopen WHERE uabopen_prem_code = acct.ucracct_prem_code AND uabopen_cust_code = acct.ucracct_cust_code AND uabopen_bad_debt_status_code IS NULL) LOOP就这两层循环 uabopen ucracct 都是千万级以上数据
ucracct_prem_code,
ucracct_cycl_code,
ucracct_status_ind
FROM ucracct
WHERE ucracct_cycl_code >= cycle_code_begin
AND ucracct_cycl_code <= cycle_code_end
AND (account_type = '%' OR
ucracct_status_ind = account_type)) --
LOOP
IF mod(rows_int, interval_int) = 0 THEN
FOR chg IN (SELECT uabopen_serv_num,
uabopen_srat_code,
uabopen_scat_code,
uabopen_charge_date,
uabopen_ar_trans,
uabopen_billed_chg,
uabopen_balance,
uabopen_budget_variance
FROM uabopen
WHERE uabopen_prem_code = acct.ucracct_prem_code
AND uabopen_cust_code = acct.ucracct_cust_code
AND uabopen_bad_debt_status_code IS NULL) LOOP就这两层循环 uabopen ucracct 都是千万级以上数据
以前做电信报表统计的时候,遇到话单表的统计,都是一步步来的.
cursor能不用就尽量不要用了.