stmt := 'select count(*) from ' || table_name; open C1 for execute stmt; fetch C1 into rc; close C1; if (debug_level = 1) then if rc > 0 then perform diag_print(func_name,format('Counted %s records in table %s',rc,table_name) ); else perform diag_print(func_name,format('Table %s is empty.',table_name) ); return 0; end if; end if; stmt := 'select count(*) from ' || table_name || ' where orderno not in ( select orderno from cmr_ajf) ' ; if lower(table_name) = 'cmr_setvar' then stmt := stmt || ' and orderno <> 0'; end if; open C1 for execute stmt; fetch C1 into rc; <========================= Sometimes fail here close C1; if rc>0 then Should I use a different variable for every refcursor usage ?