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.