Muchas gracias , exelente.

Otra pregunta mas, resulta que si ejecuto mi query aparte, me da dos registros 
con un usuario "asotero" y al ejecutar mi funcion solo me da un registro , es 
decir solo lo encontro en la primera tabla que es usuarios y no me muestra el 
de la tabla usuariosadmin, mi pregunta es, si en el codigo de mi consulta tengo 
que indicarle algo mas?



________________________________
De: Anthony Sotolongo <asotolo...@gmail.com>
Enviado: martes, 10 de octubre de 2017 12:41:47
Para: Maria Antonieta Ramirez; FORO POSTGRES
Asunto: Re: Ayuda con query


Hola Maria Antonieta, como retornas un record desde hacer el cast de lo que 
retornas, algo como:


select * from educaciondistancia.busca_usuarios('blablabla') as (campo1 
tipo_dato, campo2 tipo_dato, ....)


donde los campos deben ser de mismo tipo de dato que lo que devuelve la query 
que defines dentro de la función


por ejemplo:



CREATE or replace FUNCTION ejemplo_record(character)  RETURNS  RECORD AS
$BODY$
DECLARE
REG RECORD;
BEGIN
FOR REG IN (select datname, datdba from pg_database
              Where datname =$1)
loop
return REG;
end loop;
end;
$BODY$
language 'plpgsql';

select * from ejemplo_record('postgres') as (nombre name, dba oid) --retorna 
los campos por separado
select ejemplo_record('postgres') --retorna los campos en un record


Saludos

On 10/10/17 14:23, Maria Antonieta Ramirez wrote:


Hola,


Ya tengo mi funcion de la siguiente manera:


 CREATE or replace FUNCTION educaciondistancia.busca_usuarios(character)  
RETURNS  RECORD AS
$BODY$
DECLARE
REG RECORD;
BEGIN
FOR REG IN (Select usuario.*
   from (Select a.usuario , a.pwd , a.matricula, a.iniciosesion,a.ultimoacceso, 
a.token, a.tipousuario , a.activo
                From educaciondistancia.usuarios a
               Union all
              Select b.usuario, b.pwd, b.personal, b.iniciosesion, 
b.fechaultimoacceso, b.token, b.tipousuario,  b.activo
                From educaciondistancia.usuariosadmin b
              ) usuario
              Where usuario.usuario =$1)
loop
return REG;
end loop;
end;
$BODY$
language 'plpgsql';




solo que me muestra mi resultado en un solo renglón , como puedo hacer para que 
me lo muestre separado por campos

________________________________
De: Maria Antonieta Ramirez
Enviado: martes, 10 de octubre de 2017 11:10:56
Para: FORO POSTGRES
Asunto: Ayuda con query


Buen dia, De ante mano muchas gracias a todos por su apoyo.

De las opciones que me comentarón la que me resulto es la siguiente ya la 
complete con los campos que necesito.



Select usuario.*
   from (Select a.usuario , a.pwd , a.matricula, a.iniciosesion,a.ultimoacceso, 
a.token, a.tipousuario , a.activo
                From educaciondistancia.usuarios a
               Union all
              Select b.usuario, b.pwd, b.personal, b.iniciosesion, 
b.fechaultimoacceso, b.token, b.tipousuario,  b.activo
                From educaciondistancia.usuariosadmin b
              ) usuario
Where usuario.usuario = 'aramirez'



- Ahora tengo la siguiente duda:
A esta consulta tengo que agregar un valor, ambas tablas tienen el campo 
"tipousuario"  y mi valor es 1 para mi tabla de usuarios y 2 para mi tabla de 
usuariosadmin; Yo quiero hacer esta consulta de forma que pueda ingresarle los 
siguientes valores a buscar : usuario y tipousuario

Puedo hacer una vista o tendria que meterlo a una funcion?
y si tienen un ejemplo se los agradeceria mucho.

Gracias.


Reply via email to