hay varias cosas en las que veo inconsistencias.
Cita: IF query_locales.has_locales THEN
Esta comparando esto con que?
no sería:
IF query_has_locales.has_locales = 'algo' THEN?
dentro del if hace esta consulta
Cita: SELECT pk_locale,name FROM sm_locale WHERE fk_pk_city = query_count.city_code;
que fin tiene esa consulta? no veo que se salven los valores retornados por la consulta para ser usados.
Donde se usa este record declarado? query_locale
Describe un poco que tratas de hacer. Tal vez haya una forma mas optima de obtener los mismos resultados.
saludos