Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/11/2013, 07:59
bibliotecario08
 
Fecha de Ingreso: agosto-2013
Ubicación: d.f.
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: hacer join en procedimiento almacenado

haciendo algunos cambios en el procedimiento segun yo quedaria asi:

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION obtener_nombres_turnos(IN id CHARACTER, IN fecha DATE, OUT out_nombres CHARACTER)
  2.   RETURNS SETOF CHARACTER AS
  3. $BODY$
  4.     DECLARE
  5.     datos record;  
  6.        BEGIN
  7.           FOR datos IN SELECT nombres FROM prestatario WHERE id_prestatario=id UNION SELECT turno FROM servicios WHERE id_prestatario=id AND (fecha>=fecha_inicio AND fecha<=fecha_termino) loop
  8.              out_nombres=datos.nombres;
  9.              RETURN NEXT;
  10.           END loop;
  11.           RETURN;
  12.        END;
  13.      $BODY$
  14.   LANGUAGE plpgsql

al ingresar los parametros si me devuelve los valores correctos pero no me los devuelve con un record set es decir en otros procedimientos almacenados de record set me devuelve los valores en esta forma:

victor manuel, vespertino

los valores separados por comas


pero en este me lo colocoa de la siguiente manera:

obtener_nombres_turnos
bpchar
---------------------------------------
1 |vespertino
---------------------------------------
2 |victor manuel
---------------------------------------

ignoro si al llamar al procedimiento almacenado asi me devuelva ambos valores (segun yo solo devuelve el primero) ya que en java al obtener el conjunto de valores que te comento yo les doy formato para despues separarlos y colocarlos en las lineas de codigo que se nesesiten que opinas????
__________________
"benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y totalmente diferente..."