Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/02/2012, 12:00
Avatar de djmashe
djmashe
 
Fecha de Ingreso: julio-2007
Ubicación: Posadas, Misiones
Mensajes: 52
Antigüedad: 16 años, 9 meses
Puntos: 2
Pregunta Respuesta: Pl/Pgsql Funcion que consulta y devuelve array

Cita:
Iniciado por Heiroon Ver Mensaje
Hola,

al final lo resolvi de esta manera... La comparto por si algun dia hace falta..

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION f_existe_usuario(_email CHARACTER VARYING)
  2.   RETURNS SETOF t_datos_recup_clave AS
  3. $BODY$
  4. DECLARE
  5.     _cod_msj    INTEGER;
  6.     _msj_usu    VARCHAR;
  7.     _reg_usuario    RECORD;
  8.     _retorno    t_datos_recup_clave;
  9. BEGIN
  10.    
  11.     SELECT
  12.         id_usu,
  13.         nom_usu,
  14.         ape_usu
  15.     INTO
  16.         _reg_usuario
  17.     FROM
  18.         usuarios
  19.     WHERE
  20.         ema_usu = _email;
  21.        
  22.     IF NOT FOUND THEN
  23.  
  24.         _cod_msj            := 1;
  25.         _msj_usu            := 'No Existe el Usuario';
  26.         _retorno.cod_msj        := _cod_msj;
  27.         _retorno.msj_usu        := _msj_usu;
  28.     ELSE
  29.         _cod_msj            := 0;
  30.         _msj_usu            := 'El usuario ha sido encontrado';
  31.         _retorno.cod_msj        := _cod_msj;
  32.         _retorno.msj_usu        := _msj_usu;
  33.         _retorno.id_usu         := _reg_usuario.id_usu;
  34.         _retorno.nom_usu        := _reg_usuario.nom_usu;
  35.         _retorno.ape_usu        := _reg_usuario.ape_usu;
  36.  
  37.     END IF;
  38.    
  39.     RETURN NEXT _retorno;
  40.     RETURN;
  41. END;
  42. $BODY$
  43.   LANGUAGE plpgsql VOLATILE
  44.   COST 100
  45.   ROWS 1000;
  46. ALTER FUNCTION f_existe_usuario(CHARACTER VARYING) OWNER TO u_enelmapa;
Saludos heiroon, te consulto, la variable t_datos_recup_clave es un tipo definido por vos? porque si ejecuto este script como lo posteaste me da el siguiente error:

Código sql:
Ver original
  1. ERROR:  TYPE "t_datos_recup_clave" does NOT exist
  2.  
  3. ********** Error **********
  4.  
  5. ERROR: TYPE "t_datos_recup_clave" does NOT exist
  6. Estado SQL:42704