Estimados estoy haciendo la siguiente funcion y me devuelve un solo campo
record con los valores entre comas, como puedo hacer para que me devuelva
en vaias columnas, a mi criterio el codigo esta bien tengo postgre 9.5.
Intente tambien con returns setof record y parametros out y me sale lo
mismo.

Codigo de funcion:
CREATE OR REPLACE FUNCTION public.f_usuario_login(
    vf_usuario character,
    vf_clave character
    )
  RETURNS table(persona character varying(13), periodo integer, ruc
character varying(13), perfil integer, activo character varying(1)) AS
$BODY$
declare
id_persona character varying(13);
ruc_insti character varying(13);
periodo_act integer;
perfiles integer;
begin
  if not exists (select * from usuario where usuario=vf_usuario) then
raise exception 'El usuario % no existe en nuestra base de datos.',
vf_usuario;
  else
select ruc_institucion_fk, ced_persona_fk into ruc_insti, id_persona from
usuario where usuario=vf_usuario and clave=vf_clave;
if not found then
raise exception 'La contraseña ingresada no es correcta, por favor vuelva a
intentarlo';
else
   periodo_act := (select f_getperiodo_act(ruc_insti));
   if (periodo_act = -1) then
raise exception 'El periodo no ha sido actualizado, por favor contáctese
con el Administrador del sistema.';
   else
return query select * from usuarios_actuales where
ced_persona_fk=id_persona and id_periodo_fk=periodo_act and
id_institucion_fk=ruc_insti and status='A';
if not found then
raise exception 'El usuario no tiene permiso para este periodo, por favor
contáctese con el Administrador del sistema.';
end if;
            end if;
        end if;
  end if;
end;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

Adjunto la imagen del output.

Saludos,
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a