Ver Mensaje Individual
  #14 (permalink)  
Antiguo 23/09/2010, 09:29
Avatar de webness
webness
 
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Store procedure con execute y update

Eselente ya me funciono y asi quedo:

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION p_poblaingas_geoindex(CHARACTER VARYING)
  2.   RETURNS VOID AS
  3. $BODY$
  4. DECLARE
  5.     rec refcursor;
  6.     SQL VARCHAR;
  7.     city    ALIAS FOR $1;
  8.     year_mi INTEGER;
  9.     year_ma INTEGER;
  10.     i   INTEGER;
  11.  
  12. BEGIN
  13.     SQL :=  'SELECT MIN(periodo) AS min,MAX(periodo) AS max
  14.          FROM   servcon_poblaingas_'||city;
  15.          
  16.     OPEN rec FOR EXECUTE SQL;
  17.     FETCH rec INTO year_mi,year_ma;
  18.    
  19.     i    :=  year_mi;      
  20.    
  21.     LOOP
  22.         EXECUTE 'SELECT AddGeometryColumn ('||QUOTE_LITERAL('servcon_poblaingas_'||city||'_'||i)||','||QUOTE_LITERAL('geom')||',4326,'||QUOTE_LITERAL('POINT')||',2)';
  23.         EXECUTE 'UPDATE servcon_poblaingas_'||city||'_'||i||' set geom = GeometryFromText(''POINT(''||CX||'' ''||CY||'')'',4326)';
  24.         EXECUTE 'CREATE INDEX idx_poblaingas_'||city||'_'||i||' ON servcon_poblaingas_'||city||'_'||i||' USING GIST (geom)';
  25.         i  := i + 1;
  26.                    
  27.         EXIT WHEN  i > year_ma;
  28.     END LOOP;
  29.  
  30.     RETURN;
  31. END;
  32. $BODY$
  33.   LANGUAGE 'plpgsql' VOLATILE;

Última edición por webness; 23/09/2010 a las 09:39