Rubens José Rodrigues wrote:
> Pessoal,
>
> Até achei na internet algo que explicasse como criar funções mas
> sinceramente não consegui e não entendi, vou passar o cenário e depois a
> necessidade :
>
> Cenário :
>
> PG :=> PostgreSQL 8.2.4 on i686-pc-linux-gnu, compiled by GCC gcc (GCC)
> 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
>
>
> Cenário :
>
> TABELA A TABELA B
> CODUSUARIO SEQ
> NOMEUSUARIO CODUSUARIO REF TABELA A (CODUSUARIO)
> DATA
> DESCRICAOSERVICO
> VALOR
>
>
> Necessidade :
>
> Criar uma function passando como parâmetro de entrada o período (x,y)
> fizesse um sum nos valores entre o período x e y e retornasse :
>
> Exemplo de retorno :
>
> CODUSUARIO | NOME | VALOR
> 001 RUBENS 1.00
> 002 JOSE 1.10
> 003 RODRIGUES 1.20
>
No seu caso é necessário criar um TYPE, assim por exemplo:
CREATE TYPE Meu_Tipo AS
(codusuario character varying(3),
nome character varying(200),
valor numeric(20,2));
Depois crie a stored procedure que irá retornar da seguinte maneira:
CREATE OR REPLACE FUNCTION sp_teste()
RETURNS SETOF Meu_Tipo AS
Atente para o RETURNS SETOF.
Para retornar mais de um registro, basta utilizar o RETURN NEXT.
Expliquei meio por cima, tenta fazer, se não conseguir ou tiver duvidas
reporte na lista novamente que continuamos te ajudando.
Evandro
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral