Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/11/2009, 12:36
Avatar de webness
webness
 
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Exclamación Respuesta: Procedimiento almacenado con ciclos anidados

Ya corregi el procedimiento y no ya no existe el problema anterior. quedo asi:

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION p_update_locales_in_count() RETURNS BOOLEAN AS $BODY$
  2. DECLARE
  3.     query_count         RECORD;
  4.     query_has_locales   RECORD;
  5. BEGIN
  6.     FOR query_count IN SELECT neighborhood_code,city_code FROM  conteo_manzanas_barrio_co LOOP
  7.    
  8.         FOR query_has_locales IN SELECT has_locales FROM sm_city WHERE pk_city = query_count.city_code LOOP
  9.        
  10.             IF query_has_locales.has_locales THEN
  11.                 SELECT  pk_locale,name FROM sm_locale WHERE fk_pk_city = query_count.city_code;
  12.                
  13.                 UPDATE  conteo_manzanas_barrio_co
  14.                 SET     locale_code = pk_locale, locale_name = name
  15.                 WHERE   neighborhood_code = query_count.neighborhood_code;
  16.             END IF;
  17.        
  18.         END LOOP;
  19.        
  20.     END LOOP;
  21.  
  22.     RETURNS TRUE;  
  23. END $BODY$
  24. LANGUAGE plpgsql;


AHORA LO QUE NO ES COMO LLAMARLO PUES LO ESTOY LLAMANDO ASI:

SELECT * FROM p_update_locales_in_count()

Y ME ARroja este error:

Código ERROR:
Ver original
  1. Error de SQL:
  2.  
  3. ERROR:  SELECT query has no destination for result data
  4. HINT:  If you want to discard the results, use PERFORM instead.
  5. CONTEXT:  PL/pgSQL function "p_update_locales_in_count" line 10 at SQL statement
  6.  
  7. En la declaración:
  8. SELECT * FROM p_update_locales_in_count()

como debo llamarlo o que debo cambiarle?