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

procedimiento almacenado que regrese conjunto de valores

Estas en el tema de procedimiento almacenado que regrese conjunto de valores en el foro de PostgreSQL en Foros del Web. saludos amigos mi problema es el siguiente: tengo 2 tablas las cuales estan relacionada a traves de llave foranea de la siguiente manera: - @import ...
  #1 (permalink)  
Antiguo 16/08/2013, 20:53
 
Fecha de Ingreso: agosto-2013
Ubicación: d.f.
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta procedimiento almacenado que regrese conjunto de valores

saludos amigos mi problema es el siguiente:

tengo 2 tablas las cuales estan relacionada a traves de llave foranea de la siguiente manera:

-
Código SQL:
Ver original
  1. CREATE TABLE prestatario
  2. (
  3.   id_prestatario CHARACTER(20) NOT NULL,
  4.   a_paterno CHARACTER(25),
  5.   a_materno CHARACTER(25),
  6.   nombres CHARACTER(20),
  7.   nombre_escuela CHARACTER(35),
  8.   CONSTRAINT prestatario_pkey PRIMARY KEY (id_prestatario)
  9. )

aqui la otra tabla:

Código SQL:
Ver original
  1. CREATE TABLE servicios
  2. (
  3.   id_servicio INTEGER NOT NULL DEFAULT NEXTVAL('serivicios_id_servicio_seq'::regclass),
  4.   tipo_servicio CHARACTER(30),
  5.   fecha_inicio DATE,
  6.   fecha_termino DATE,
  7.   id_prestatario CHARACTER(20),
  8.   CONSTRAINT serivicios_pkey PRIMARY KEY (id_servicio),
  9.   CONSTRAINT serivicios_id_prestatario_fkey FOREIGN KEY (id_prestatario)
  10.       REFERENCES prestatario (id_prestatario) MATCH SIMPLE
  11.       ON UPDATE NO ACTION ON DELETE NO ACTION
  12. )

como pueden ver utilizo el campo id_prestatario para poder relacinarlas a traves de la llave foranea en la tabla de servicios.

ahora resulta que quiero hacer una consulta en la cual selecciono los campos de ambas tablas y cuando el id_prestatario sea igual al valor que yo le mande. estos valores que de los que les hago mencion quiero que me los retorne a travez de un procedimiento almacenado, hata ahorita por lo que he investigado y segun entendi se utiliza en el procedimeinto un record set y segun este contiene todos los valores juntos mi intruccion de consulta de prueva es la siguiente:
Código SQL:
Ver original
  1. SELECT (nombre_escuela,a_materno,nombres,tipo_servicio,fecha_inicio,fecha_termino)
  2. FROM prestatario,servicios
  3. WHERE (servicios.id_prestatario='tgc-vmre');
realize unas pruevas con esta instruccion en el gestor de base de datos de postgres y efecivamente me regresa los 2 registros que tengo identificados

la duda como decia: ¿como podria implementar esta instruccion un un procedimiento almacenado?, pregutno por que si encontre un ejemplo pero la verdad no me queda claro espero puedan ayudarme a y ya que puregunto esto no se si pueda preguntar otra cosa o eso lo pongo en un tema aparte, la otra cuestion es como almaceno el conjunto de valores que regresa el procedimiento en java, es decir, si lo puedo guardar en una variable String o en un arregle para poder separarlos y mostrarlos en cajas de texto diferentes.

espero que puedan ayudarme muchas gracias.
__________________
"benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y totalmente diferente..."

Última edición por gnzsoloyo; 02/09/2013 a las 10:44 Razón: Usar Highlights por favor.
  #2 (permalink)  
Antiguo 02/09/2013, 07:34
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: procedimiento almacenado que regrese conjunto de valores

tienes que hacer esto

Código SQL:
Ver original
  1. CREATE FUNCTION test (IN p_idprestatario VARCHAR ) RETURNS TABLE (out_nombreescuela VARCHAR,out_materno text,out_nombres CHARACTER VARYING) AS $_$
  2. DECLARE
  3.     --variables a declarar
  4. BEGIN
  5.    RETURN query SELECT nombre_escuela,a_materno,nombres FROM prestatario,servicios WHERE
  6.    (servicios.id_prestatario= p_idprestatario);
  7. END;
  8. $_$
  9. LANGUAGE plpgsql;

Última edición por gnzsoloyo; 02/09/2013 a las 10:45 Razón: Usar Highlights por favor.

Etiquetas: almacenado, campos, conjunto, postgres, procedimiento
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 11:15.