El objetivo de este es actualizar los datos de 2 columnas de una tabla si y solo si hay datos para esa columna.
estoy viendo en: http://www.postgresql.org/docs/8.0/s...tructures.html, en la seccion 35.7.4. Looping Through Query Results un ejemplo para guiarme.
Mi codigo:
Código PL/PGSQL:
Ver original
CREATE OR REPLACE FUNCTION p_update_locales_in_count() RETURNS boolean AS $BODY$ DECLARE query_count RECORD; query_has_locales RECORD; query_locale RECORD; BEGIN FOR query_count IN SELECT neighborhood_code,city_code FROM conteo_manzanas_barrio_co LOOP FOR query_has_locales IN SELECT has_locales FROM sm_city WHERE pk_city = query_count.city_code.city_code LOOP IF query_locales.has_locales THEN SELECT pk_locale,name FROM sm_locale WHERE fk_pk_city = query_count.city_code; UPDATE conteo_manzanas_barrio_co SET locale_code = pk_locale, locale_name = name WHERE neighborhood_code = query_count.neighborhood_code; END IF; END LOOP; END LOOP; RETURNS TRUE; END $BODY$ LANGUAGE plpgsql;
Y EL ERROR QUE BOTA ES:
Código ERROR:
¿EN SINTESIS QUE TIENE DE MALO MI PROCEDIMIENTO, ES ESA LA FORMA CORRECTA DE LLAMARLO? Ver original
[COLOR="Red"][SIZE="3"][FONT="Comic Sans MS"] Error de SQL: ERROR: schema "query_count" does not exist CONTEXT: SQL statement " SELECT has_locales FROM sm_city WHERE pk_city = query_count.city_code.city_code" PL/pgSQL function "p_update_locales_in_count" line 8 at for over select rows En la declaración: SELECT * FROM p_update_locales_in_count()[/FONT][/SIZE][/COLOR]