OBS: Faltou só o anexo.
Agora está certo!
2009/9/1 Leandro Cavalari Soares <[email protected]>
> Boa Tarde Bruno!
> Dias atrás precisei que o retorno de uma função fosse um tipo composto e
> encontrei uma solução sem a necessidade de se criar explicitamente um tipo
> ou uma tabela.
>
> Um exemplo encontra-se em anexo, seguindo o seguinte raciocício:
>
> - A função retorna SETOF RECORD;
> - Os valores desejados são agrupados em um RECORD que é adicionado ao
> conjunto de retorno dentro de um LOOP.
>
> Mas tem um porém: essa abordagem não descartará a redeclaração da função
> uma vez que você precise adicionar mais colunas ao conjunto de dados
> retornado.
>
> Espero que o exemplo lhe seja útil.
>
> Bom Trabalho!
>
> --
> Leandro Cavalari Soares
> Analista de Sistemas / DBA
> Veltrac - Tecnologia em Logística
> (43) 2105-5614 / (43) 9922-8095 - Londrina / PR
>
--
Leandro Cavalari Soares
Analista de Sistemas / DBA
Veltrac - Tecnologia em Logística
(43) 2105-5614 / (43) 9922-8095 - Londrina / PR
-- FUNÇÃO
CREATE OR REPLACE FUNCTION fnBuscarFuncionarios(nomeDepartamento varchar)
RETURNS SETOF record AS
$BODY$
DECLARE
reg RECORD;
BEGIN
FOR reg IN SELECT funcionario.nome AS fun_nome, departamento.nome AS
dep_nome FROM funcionario JOIN departamento ON funcionario.dep_id =
departamento.id WHERE departamento.nome ~ nomeDepartamento
LOOP
RETURN NEXT reg;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql';
-- CHAMADA DA FUNÇÃO
SELECT * FROM fnBuscarFuncionarios('ADM') AS (fun_nome varchar,
departamento.nome varchar);_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral