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
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a