Olá,

2009/8/31 Bruno Carneiro <[email protected]>

>
> Olá pessoal,
>
> Estou estudando como criar funções na linguagem SQL por aqui:
> http://pgdocptbr.sourceforge.net/pg80/xfunc-sql.html
>
> Nesta página, quando se retorna um tipo composto, no exemplo uma tabela é
> criada antes, e depois é retornada o tipo daquela tabela, por exemplo:
>
> CREATE TABLE emp (
>    nome        text,
>    salario     numeric,
>    idade       integer,
>    baia        point
> );
>
> CREATE FUNCTION novo_empregado() RETURNS emp AS $$
>    SELECT text 'Nenhum' AS nome,
>        1000.0 AS salario,
>        25 AS idade,
>        point '(2,2)' AS baia;
> $$ LANGUAGE SQL;
>
>
> Então, vou criar uma função que gera pra mim um relatório, e essa função
> deve me retornar um dado composto, cada linha uma venda e cada coluna
> detalhes sobre esta venda.
>
> Acontece que para retornar esse tipo composto, se eu seguir o exemplo, vou
> ter que criar uma tabela relatório, sendo que não vou armazenar nada nesta
> tabela, ela seria apenas o modelo para o retorno da minha função.
>
> Preciso criar um tabela, ou posso definir um tipo sem criar tabela?
>

Pode definir um tipo de dado. Veja o comando CREATE TYPE.

>
>
> Outra coisa, enquanto escrevia este post, uma coisa me veio a mente: Ao
> invés de criar uma função que gere esse relatório, eu poderia no ato da
> venda, fazer todos os calculos de relatorio e gravar no campo de vendas.
> Por
> exemlo, lucro, despesas, comissões, tudo isso não varia depois da venda.
> Acho que o corretor seria eu calcular e gravar esses valores na hora da
> venda, quando for solicitado relatório eu apenas iria consultar esses
> dados.
> É melhor não é?
>

Sim. Você pode fazer isso. Você pode utilizar TRIGGERS e/ou RULES.

>
> --
> View this message in context:
> http://www.nabble.com/Fun%C3%A7%C3%A3o-retornado-tipo-composto.-Preciso-criar-tabela--tp25231950p25231950.html
> Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a