--- Em qua, 1/4/09, Jorge Vilela <[email protected]> escreveu:

> De: Jorge Vilela <[email protected]>
> Assunto: [pgbr-geral] onde usar função no banco
> Para: "Comunidade PostgreSQL Brasileira" <[email protected]>
> Data: Quarta-feira, 1 de Abril de 2009, 9:38
> Bom dia PessoALL,
> Eu tenho 4 tabelas, cada uma com uns 20 campos.
> 
> Estou tendo muitos problemas porque preciso gravar nas
> quatro tabelas, mas
> não uso procedure no banco, assim não consigo dar
> rollback se der erro.
> 
> 
> Se eu fizer uma procedure que insira os campos em todas as
> tabelas ela vai
> precisar de uns 50 argumentos...
> 
> 
> Tem alguma forma de eu conseguir o rollback sem precisar de
> uma unica
> procedure com 50 argumentos?
> 
> 
> Muito obrigado!
> 
> Jorge Vilela

Olá Jorge,

Quanto tenho que inserir valores em mais de uma tabela, eu costumo fazer o 
seguinte:

TAB NOTA FISCAL
NUMERO INT
DATA DATE

TAB ITENS NOTA FISCAL
COD PROD INT
QTDE INT
VALOR NUMERIC

Crio uma funcao mais ou menos assim:

CREATE FUNCTION minha_funcao(integer, date, varchar[])
  RETURNS integer AS
$BODY$

        DECLARE
                numero                  alias for $1;
                data                    alias for $2;
                itens                   alias for $3;
        BEGIN
........

Use: select minha_funcao(12345, '2009-04-01', 
ARRAY[['1','2','10.00'],['2','5','100.00']]);

[]'s

Heloisa


      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a