Muito obrigado pessoal!Testei aqui com a transação e deu certo! Heloara, boa idéia receber uma array! Mas isso acaba dando trabalho pra você converter os dados de entrada dentro da procedure né?
Obrigado! Jorge Vilela 2009/4/1 Heloisa Fernanda <[email protected]> > > > > > --- 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 >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
