Humm...<br><br>Nesse caso, penso que seja melhor unificar os formatos, ou seja, ou você joga tudo para um banco só em tabelas temporárias(isso não parece ser interessante pra você), ou você padroniza tudo num formato. Qual??? Aí é com você! CSV é bem simples, e dá pra vc tratar com SQL através do módulo DBD::CSV. Mas dá pra fazer isso com vários formatos na verdade, até com XML(não sei se isso é interessante pra vc).<br>
<br>Tratar tudo no diff eu acho arriscado, mas nada que um 'pente fino' não resolva. Fica bem rápido, mas a checagem e manutenção disso deve ficar bem difícil.<br><br><br>Cheers!<br><br><br><br><br><div class="gmail_quote">
2010/5/20 Guarnieri, Carlos [ICG-IT] <span dir="ltr"><<a href="mailto:carlos.guarnieri@citi.com">carlos.guarnieri@citi.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">i got it... mas believe nao eh soh oraco; tem um
sybase vagabundo e um db2 e o arquivo texto tem cerca de 2,5 gigas...
:'(</font></span></div><br>
<div dir="ltr" lang="en-us" align="left">
<hr>
<font face="Tahoma" size="2"><div class="im"><b>From:</b>
saopaulo-pm-bounces+carlos.guarnieri=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a>
[mailto:<a href="mailto:saopaulo-pm-bounces%2Bcarlos.guarnieri" target="_blank">saopaulo-pm-bounces+carlos.guarnieri</a>=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a>] <b>On Behalf Of
</b>Andre Carneiro<br></div><b>Sent:</b> quinta-feira, 20 de maio de 2010
15:50<div><div></div><div class="h5"><br><b>To:</b> <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br><b>Subject:</b> Re: [SP-pm]
Comparando grande massa de dados<br></div></div></font><br></div><div><div></div><div class="h5">
<div></div>Tenho quase certeza que o teu hash não vai trabalhar mais rápido que
o índice do Oracle. Acho bem difícil.<br><br>Você não vai ter segmento de UNDO e
REDO, porque você estaria carregando com sqlldr. Não tem volta!!!! ;) Esse é um
dos motivos dele ser rápido!!!!<br><br>Você pode perder desempenho se os índices
não estiverem ok! Nesse caso vc deve regerá-los. Mas isso seria apenas no
momento de execução teu SELECT .<br><br>Eu tô sugerindo essas coisas, porque
trabalhar diretamente com os dados, embora bom para o aprendizedo, aumenta as
chances de erros. Se vc está trabalhando no ambiente do RDBMS, pelo menos alguns
erros(principalmente no que se refere a referências), são mais facilmente
detectáveis através da interface com o banco de dados.<br><br>Mas se você
prefere fazer 'no braço', não tem problema também. Você pode usar o módulo do
CVS que eu sugeri, você pode usar diff(ordenando as pesquisas nos dois bancos de
dados, vc consegue capturar as diferenças).<br><br>diff -Bub arq_Oracle.dat
arq_Sybase.dat >dedoduro.txt<br><br>Enfim, várias soluções possíveis. Se eu
conseguir lembrar de mais alguma coisa eu posto
.<br><br><br>Cheers!<br><br><br><br><br>
<div class="gmail_quote">2010/5/20 Guarnieri, Carlos [ICG-IT] <span dir="ltr"><<a href="mailto:carlos.guarnieri@citi.com" target="_blank">carlos.guarnieri@citi.com</a>></span><br>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Hallo,</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"> O Otavio pegou a ideia. Eh exatamente isso que
quero fazer comparar os hashes (e apenas inserir as PKS e hashes no banco)
porque... na verdade tenho que comparar um arquivo txt (que vem de mainframe)
com os bancos de dados. Os dois usam UTF-8 porque temos enderecos russos em
cirilico e em outras formatos estranhos :p</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Nao quero
jogar os dados todos no banco porque quero um processo rapido e nao quero
correr o risco de exaurir a temp do banco ou segmento de
rollback.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Talvez o
melhor seja retirar as coisas do banco e gerar os hashes em arquivos
temporarios...</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Nao temos
timing para comprar ferramenta especifica pra isso (e eu acho tb q nao
compensa) e o processo tem de rodar toda semana e/ou sob demanda porque contem
informacoes criticas de cliente (que soh podem ficar em area
militarizada).</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Valew
pelas dicas. Vou acabar comparando em arquivos locais mesmo. O servidor
de processo eh bem parrudo</font></span></div><br>
<div dir="ltr" lang="en-us" align="left">
<hr>
<font face="Tahoma" size="2">
<div><b>From:</b> saopaulo-pm-bounces+carlos.guarnieri=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a> [mailto:<a href="mailto:saopaulo-pm-bounces%2Bcarlos.guarnieri" target="_blank">saopaulo-pm-bounces+carlos.guarnieri</a>=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a>] <b>On Behalf Of </b>Andre
Carneiro<br></div><b>Sent:</b> quinta-feira, 20 de maio de 2010 14:20
<div>
<div></div>
<div><br><b>To:</b> <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br><b>Subject:</b> Re: [SP-pm]
Comparando grande massa de dados<br></div></div></font><br></div>
<div>
<div></div>
<div>
<div></div>
<div class="gmail_quote">2010/5/20 Otavio Pereira <span dir="ltr"><<a href="mailto:otavio.pereira@gmail.com" target="_blank">otavio.pereira@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">Na
verdade, eu acho que entendi.<br><br>Ele tem pks identicas nos dois bancos,
então ele quer tratar o registro inteiro (50+ colunas) como uma string e
gerar um hash disso e então comparar com os hashes obtidos no outro banco.
Onde os hashs não baterem, levantará um flag (a tabela dedo-duro que ele
comentou) para averiguação.<br><br></blockquote>
<div><br>Eu entendi mais ou menos isso... rsrs!!! Mesmo assim não vejo porque
salvar em arquivos. Mas se são as mesmas PKs, porque não salvar uma tabela
temporária no banco que será sincronizado e utilizar essa tabela mesmo para
fazer a comparação??<br> </div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">Se
for isso, o único problema que vejo é qto aos charsets dos bancos e
caracteres extras que eles possam inserir (tipo fazer padding a direita com
espaços ou 0x0), sei lá. <br><br></blockquote>
<div><br>Já eu sinceramente espero que os dois bancos estejam em UTF-8. Se não
estiver, terás que usar Encode para converter os dados antes de comparar, e
provalemente, tabelas de conversão de caracteres.<br><br>Não sei se vai ser
uma boa idéia carregar hashes tão grandes na memória. Pode-se salvar tudo em
CSV e usar DBD::CSV para comparar, por exemplo.<br><br> </div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">Já
tentei fazer isso com um banco de dados médico pra tentar diferenciar
homônimos, funcionou mais ou menos... mas é que tinha muitos José Silvas e
Marias Severinas no banco rs.<br><br>Espero que tenha entendido certo!
<br><br></blockquote>
<div><br>Entendi sim, valeu!<br> </div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">[]<br clear="all">Otávio<br><br><br>
<div class="gmail_quote">2010/5/20 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span>
<div>
<div></div>
<div><br>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">Nossa!
Q confusão!<br><br>Deixa eu ver se entendi: <br><br>1) Você quer
sincronizar uma base Oracle com uma Sybase(vice-versa???);<br>2) Se vc já
vai carregar coisas com o sqlldr numa tabela temporária, já na base de
produção, pra que vc precisa de hashes??? Não entendi. Se os dados já
estão lá, compara com a tabela em produção diretamente com SQL, procedures
etc...(se eu estiver falando besteira, pode me xingar);<br>3)Você já
pensou em utilizar alguma ferramenta de migração de dados ? Se isso é
crítico no seu trabalho, talvez(só uma sugestão) uma solução pronta possa
resolver de maneira mais efetiva( não sei se resolve, mas vi essa aqui: <a href="http://www.swissql.com/products/oracle-to-sybase/oracle-to-sybase.html" target="_blank">http://www.swissql.com/products/oracle-to-sybase/oracle-to-sybase.html</a>
);<br><br><br>Cheers!<br><br><br><br>
<div class="gmail_quote">2010/5/20 Guarnieri, Carlos [ICG-IT] <span dir="ltr"><<a href="mailto:carlos.guarnieri@citi.com" target="_blank">carlos.guarnieri@citi.com</a>></span>
<div>
<div></div>
<div><br>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">o
problema eh q teria de lidar com o sqldr (oracle) e o bcpin (sybase).
Nao posso usar base de teste; apenas prod 2 prod. Os arquivos vem de
mainframe. Preciso comparar conteudo de campos para garantir que estejam
em sincronia (nao.. nao tem um lastUpdateDate....) Sao dados sensiveis
de companhias que tem permissao do FED para transferir certas
quantias...</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Aqui
esta uma ideia:</font></span></div>
<div dir="ltr" align="left"><span></span> </div>
<div dir="ltr" align="left"><span> <font face="Arial"><font color="#0000ff" size="2">1) pego o arquivo e usando a PK dele (um codigo
unico e obrigatorio, global da empresa no FED) gero um hash pros campos
que quero comparar</font></font></span></div>
<div dir="ltr" align="left"><span>
<font color="#0000ff" face="Arial" size="2">carrego esse arquivo no
dbms que quero fazer comparacao (usando sqldr / bcpin) - talvez de
300 em 300 mil </font></span></div>
<div dir="ltr" align="left"><span></span><span><font color="#0000ff" face="Arial" size="2"> (hj o
cadastro eh mais de 1 milhao mas continua crescendo. nao posso correr o
risco de enche a temp do banco)</font></span></div>
<div dir="ltr" align="left"><span> <font face="Arial"><font color="#0000ff" size="2">1.1) pros IDS carregados gero em outra tabela
temporaria os hashes dos registros que ja estavam no dbms e comparo os
hashes. </font></font></span></div>
<div dir="ltr" align="left"><span> <font face="Arial"><font color="#0000ff" size="2">1.2) Os IDS que tem hashes separados vao pra minha
tabela dedo duro dos registros fora de sync.</font></font></span></div>
<div dir="ltr" align="left"><span> <font color="#0000ff" face="Arial" size="2">1.3) limpa a tabela dos hashes e repete 1.1 e 1.2
ateh o final do arquivo</font></span></div>
<div dir="ltr" align="left"><span> <font color="#0000ff" face="Arial" size="2">1.4) manda os arquivos fora de sync pro mainframe,
apaga as temp,</font></span></div>
<div dir="ltr" align="left"><span> <font color="#0000ff" face="Arial" size="2">1.5) cd /pub; more beer; while(true) do;
sleep; done</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">razoavel? </font></span></div>
<div dir="ltr" align="left"><span> </span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" lang="en-us" align="left">
<hr>
<font face="Tahoma" size="2">
<div><b>From:</b> saopaulo-pm-bounces+carlos.guarnieri=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a> [mailto:<a href="mailto:saopaulo-pm-bounces%2Bcarlos.guarnieri" target="_blank">saopaulo-pm-bounces+carlos.guarnieri</a>=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a>] <b>On Behalf Of </b>Andre
Carneiro<br></div><b>Sent:</b> quinta-feira, 20 de maio de 2010 08:41
<div>
<div></div>
<div><br><b>To:</b> <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br><b>Subject:</b> Re: [SP-pm]
Comparando grande massa de dados<br></div></div></font><br></div>
<div>
<div></div>
<div>
<div></div>Existe o sqlldr para Oracle(mas você já sabia disso :D). Ele
serve exatamente para carregar grandes quantidades de dados
rapidamente.<br><br>Existem alguns módulos para manipular e executar
cargas de dados no CPAN, utilizando o SQLLoader. O que eu achei mais
simples foi esse aqui:<br><br><a href="http://search.cpan.org/%7Eezra/Oracle-SQLLoader-0.9/lib/Oracle/SQLLoader.pm" target="_blank">http://search.cpan.org/~ezra/Oracle-SQLLoader-0.9/lib/Oracle/SQLLoader.pm</a><br>
<br>O
problema é que não é atualizado desde 2006!!! <br><br><br><br>
<div class="gmail_quote">2010/5/19 Guarnieri, Carlos [ICG-IT] <span dir="ltr"><<a href="mailto:carlos.guarnieri@citi.com" target="_blank">carlos.guarnieri@citi.com</a>></span><br>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">entao... sao oracle e sybase... mas como os arquivos sao
grandes to com medo de joga pro
banco.</font></span></div></div></blockquote>
<div><br>Deixe disso! Faça muitos testes em tabelas temporárias(se
possível em uma base de testes), e seja feliz!<br><br></div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Tava pensando mais em pegar os dados e comparar no
unix...</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div></div></blockquote>
<div><br>Que tipo de comparação?<br><br> </div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">o
q acham?</font></span></div></div></blockquote>
<div><br>Não sei, mais detalhes por favor(se
possível)!!!<br><br> </div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">
<div><br>
<div dir="ltr" lang="en-us" align="left">
<hr>
<font face="Tahoma" size="2"><b>From:</b>
saopaulo-pm-bounces+carlos.guarnieri=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a> [mailto:<a href="mailto:saopaulo-pm-bounces%2Bcarlos.guarnieri" target="_blank">saopaulo-pm-bounces+carlos.guarnieri</a>=<a href="http://citi.com" target="_blank">citi.com</a>@<a href="http://pm.org" target="_blank">pm.org</a>] <b>On Behalf Of
</b>Andre Carneiro<br><b>Sent:</b> quarta-feira, 19 de maio de 2010
18:09<br><b>To:</b> <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br><b>Subject:</b> Re:
[SP-pm] Comparando grande massa de dados<br></font><br></div>
<div>
<div></div>
<div>
<div></div><br><br>
<div class="gmail_quote">Em 19 de maio de 2010 17:39, Guarnieri, Carlos
[ICG-IT] <span dir="ltr"><<a href="mailto:carlos.guarnieri@citi.com" target="_blank">carlos.guarnieri@citi.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);">Pessoal,<br>Preciso
fazer a reconciliacao de um banco de dados. Essa reconciliacao tera
de rodar automatica todo final de semana para garantir que alguns
sistemas estejam em sync. Não temos poder sobre o formato do arquivo
que vamos receber, mas terei de comparar com algumas tabelas em
nosso banco de dados.<br><br>Enfim temos umas 50 colunas (algumas de
endereco [char 64] / mas a maioria char 20]) e mais de 1 milhao de
registros. Entao não quero fazer um sqlload em nosso banco para
comparar via banco.<br>Alguem tem alguma sugestao interessante de
como comparar esses dados? Criar tabela de espalhamento e testar um
contra outro, exportar o banco no mesmo formato do arquivo e fazer
diff no unix (:d)...<br><br>Sugestoes são bem
vindas.<br><br></blockquote>
<div><br>Certo! <br><br>1) qual RDBMS você está usando (Postgres,
Oracle, SQLServer, MySQL) ?;<br><br>2) Você mencionou sqlload. Então
eu suponho que vc vai ter que transformar os dados no formato que o
sqlload aceita. Se for isso, você pode usar templates, por exemplo. Um
template para cada arquivo recebido com formato específico, e alguns
módulos que receberão os dados e usarão os templates para formatá-los
corretamente;<br><br>3) Exitem módulos para você trabalhar com o
sqlload no CPAN. Sugiro que você dê uma procurada e posta o RDBMS que
vc está usando para que nós possamos sugerir algum módulo para
você;<br><br><br><br>Cheers!<br> </div>
<blockquote class="gmail_quote" style="padding-left: 1ex; margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);"><br>Valew<br>_______________________________________________<br>SaoPaulo-pm
mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor
Perl<br>(11)82907780<br></div></div></div><br>_______________________________________________<br>SaoPaulo-pm
mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor
Perl<br>(11)82907780<br></div></div></div><br>_______________________________________________<br>SaoPaulo-pm
mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div></div></div>
<div>
<div></div>
<div><br><br clear="all"><br>-- <br>André Garcia
Carneiro<br>Analista/Desenvolvedor
Perl<br>(11)82907780<br></div></div><br>_______________________________________________<br>SaoPaulo-pm
mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div></div></div><br><br>_______________________________________________<br>SaoPaulo-pm
mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor
Perl<br>(11)82907780<br></div></div></div><br>_______________________________________________<br>SaoPaulo-pm
mailing list<br><a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor
Perl<br>(11)82907780<br></div></div></div>
<br>_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>
(11)82907780<br>