Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Ayuda con funcion en postgresql

Estas en el tema de Ayuda con funcion en postgresql en el foro de PostgreSQL en Foros del Web. Hola, soy nueva en esto de las bases de datos en postgresql, tengo un problema, necesito una función que me extraega los datos de los ...
  #1 (permalink)  
Antiguo 10/11/2009, 14:57
 
Fecha de Ingreso: noviembre-2009
Ubicación: Zapopan Jalisco
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Ayuda con funcion en postgresql

Hola, soy nueva en esto de las bases de datos en postgresql, tengo un problema, necesito una función que me extraega los datos de los campos de una tabla y los copie a los campos de otra tabla.
Es decir, que al ingreasar el id me rellene automaticamente los demas campos, los cuales seran de solo lectura, alguien quen me pueda explicar como hacer esto, de antemano muchas gracias.

  #2 (permalink)  
Antiguo 10/11/2009, 15:07
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con funcion en postgresql

Debes ser mas especifico(a) en tu pregunta.

Un ejemplo de lo que quieres y lo que has tratado de hacer no caería mal.

saludos quintana y bienvenido(a)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/11/2009, 10:06
 
Fecha de Ingreso: noviembre-2009
Ubicación: Zapopan Jalisco
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con funcion en postgresql

Muchas gracias por responder. La verdad no he hecho nada aún porque no se ni como empezar. Si pudieras explicarme la estructura básica de una funcion (procedure) te lo agradeceria, ya que tengo la idea de la logica a seguir para realizar la operacion pero no tengo ni la mas remota idea de como se forma la función, se que (como todos los codigos) lleva algunos datos "obliatorios" o por default, me podrias ayudar con eso ???
Muchas gracias !!
  #4 (permalink)  
Antiguo 11/11/2009, 10:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda con funcion en postgresql

Un ejemplo sencillo

Código sql:
Ver original
  1. CREATE OR REPLACE FUNCTION multiplicar(INTEGER, INTEGER)
  2.   RETURNS INTEGER AS
  3. $BODY$
  4. DECLARE
  5. resultado INTEGER;
  6. BEGIN
  7. resultado:=$1*$2;
  8. RETURN resultado;
  9. END;
  10. $BODY$
  11.   LANGUAGE 'plpgsql' VOLATILE;
  12. ALTER FUNCTION multiplicar(INTEGER, INTEGER) OWNER TO postgres;

la ejecutas así:
Código sql:
Ver original
  1. pruebas=> SELECT multiplicar(6,7);
  2.  multiplicar
  3. -------------
  4.           42
  5. (1 fila)
  6.  
  7. pruebas=> SELECT multiplicar(9,2);
  8.  multiplicar
  9. -------------
  10.           18
  11. (1 fila)
  12.  
  13. pruebas=>


En este foro hay múltiples ejemplos de funciones.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 11/11/2009, 10:27
 
Fecha de Ingreso: noviembre-2009
Ubicación: Zapopan Jalisco
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con funcion en postgresql

Pues muchas gracias por el ejemplo y revisare los ejemplos del foro, para aprender sobre dichas finciones. GRACIAS !!
  #6 (permalink)  
Antiguo 11/11/2009, 11:11
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Ayuda con funcion en postgresql

Mira mis preguntas quintana, tengo 2 ejemplos de procedimientos mas complejos con accesos de consulta y modificacion a las tablas de la base de datos
  #7 (permalink)  
Antiguo 11/11/2009, 13:34
 
Fecha de Ingreso: noviembre-2009
Ubicación: Zapopan Jalisco
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Ayuda con funcion en postgresql

Oh Gracias por la sugerencia y creeme que las revisaré, entre mas aprenda de esto será mejor.
  #8 (permalink)  
Antiguo 12/11/2009, 04:57
Avatar de ertondo  
Fecha de Ingreso: octubre-2009
Mensajes: 7
Antigüedad: 14 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Ayuda con funcion en postgresql

Hola, te cuento que yo también soy nuevo en postgresql y gracias a huesos tengo algunos pdfs que te podrían ayudar. Si queres pasame tu dirección a mi email y te los mando. Saludos.
  #9 (permalink)  
Antiguo 12/11/2009, 16:06
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
De acuerdo Respuesta: Ayuda con funcion en postgresql

[email protected], pues se que no me pedian mi email, pero chevere tenerlos.

aca en estos foros han quedado ejemplos de 2 procedimientos almacenados que he creado sattisfactoriamente gracias ahuesos52, por si les sirven, aqui los posteo de nuevo y con la forma de llamarlos

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION p_get_blocks_count(INTEGER, VARCHAR,INTEGER,VARCHAR,VARCHAR) RETURNS SETOF type_block_count AS $BODY$
  2. DECLARE
  3.     FILTER  ALIAS FOR $1;  
  4.     list    ALIAS FOR $2;
  5.     city    ALIAS FOR $3;
  6.     socioeconomic   ALIAS FOR $4;
  7.     country ALIAS FOR $5;
  8.    
  9.     sql_query VARCHAR;
  10.     query_result type_block_count;
  11. BEGIN
  12.     IF FILTER = 1 THEN
  13.         sql_query := 'SELECT    country_name,region_name,city_name,locale_name,locale_code,socioeconomic_status,city_code,total
  14.                        FROM     conteo_manzanas_localidad_'||country||'
  15.                        WHERE    locale_code IN ('||list||') AND
  16.                                 city_code = '||city||' AND
  17.                                 socioeconomic_status IN ('||socioeconomic||')';
  18.         FOR query_result IN EXECUTE sql_query LOOP RETURN NEXT query_result;
  19.         END LOOP;          
  20.     ELSE
  21.         sql_query := 'SELECT    country_name,region_name,city_name,neighborhood_name,neighborhood_code,socioeconomic_status,city_code,total,locale_name,locale_code,
  22.                        FROM     conteo_manzanas_barrio_'||country||'
  23.                        WHERE    neighborhood_code IN ('||list||') AND
  24.                                 city_code = '||city||' AND
  25.                                 socioeconomic_status IN ('||socioeconomic||')';
  26.         FOR query_result IN EXECUTE sql_query LOOP RETURN NEXT query_result;
  27.         END LOOP;              
  28.         END IF;
  29.     RETURN;
  30. END $BODY$
  31. LANGUAGE plpgsql;
  32.  
  33. SELECT * FROM p_get_blocks_count(1, $$119 ,120 ,121 ,122$$ ,739,$$'3','4','5'$$,'co')
  34. SELECT * FROM p_get_blocks_count(2, $$'000076','000063','000066','000061'$$ ,76834,$$'3','4','5'$$,'co')

Y EL OTRO ES ALGO PARECIDO A LO QUE NECESITA QUINTANA RO

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION p_update_locales_in_count() RETURNS INTEGER AS $BODY$
  2. DECLARE
  3.     query_count         RECORD;
  4.     query_has_locales   RECORD;
  5.     real_data           RECORD;
  6. BEGIN
  7.    
  8.     FOR query_count IN  SELECT  co.neighborhood_code,co.city_code
  9.                         FROM    conteo_manzanas_barrio_co co,sm_city ci
  10.                         WHERE   co.city_code = ci.pk_city AND has_locales = TRUE
  11.                         LIMIT 1 OFFSET 0 LOOP
  12.        
  13.         SELECT  INTO real_data  sl.pk_locale,sl.name
  14.         FROM    sm_locale sl,sm_neighborhood sn,servcon_barrios sb
  15.         WHERE   sn.pk_neighborhood = query_count.neighborhood_code AND
  16.                 sl.fk_pk_city = query_count.city_code AND
  17.                 sb.cod_localidad = sl.locale_code AND
  18.                 sb.cod_barrio = sn.neighborhood_code AND
  19.                 sl.name = sb.nom_localidad;
  20.                
  21.         UPDATE  conteo_manzanas_barrio_co
  22.         SET     locale_code = real_data.pk_locale, locale_name = real_data.name
  23.         WHERE   neighborhood_code = query_count.neighborhood_code;
  24.        
  25.     END LOOP;
  26.  
  27.     RETURN 0;  
  28. END $BODY$
  29. LANGUAGE plpgsql;
  30.  
  31. SELECT p_update_locales_in_count()
  #10 (permalink)  
Antiguo 16/11/2009, 11:46
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: Ayuda con funcion en postgresql

Bueno pues tampoco me han pedido mi e-mail pero si me pueden enviar los PDF a [email protected] pues yo feliz :)

gracias de antemano con eso, también estoy empezando con esto de postgre y en realidad me ha encantado

gracias de nuevo y perdón por la intromisión en el tema
  #11 (permalink)  
Antiguo 17/11/2009, 17:39
 
Fecha de Ingreso: noviembre-2009
Ubicación: Zapopan Jalisco
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Ayuda con funcion en postgresql

Hola a todos, gracias por responder mi pregunta estoy aprendiendo de esto, per si fueran tan amables de enviarme los PDFs que mencionan se los agradecería, mi correo es [email protected]
gracias !!
  #12 (permalink)  
Antiguo 29/04/2012, 19:05
Avatar de angel2010  
Fecha de Ingreso: julio-2010
Ubicación: monagas
Mensajes: 131
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Ayuda con funcion en postgresql

me puedes envia el pdf a este correo [email protected] porfavor que nesecito apreder sobre la funciones postgresql
  #13 (permalink)  
Antiguo 13/05/2012, 17:53
 
Fecha de Ingreso: septiembre-2008
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con funcion en postgresql

A mi tambien por favor si me los pueden enviar [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:12.