Uma coisa é uma coisa, outra coisa é outra coisa…

Estes dias estou cuidando de uma tarefa para lá de delicada. Tenho que importar dados de um recadastramento com uns 80 mil registros que vão atualizar todo um sistema que vai impactar na receita daqui. Grana no meio, ordem de lá de cima, muita pressão.

Bem, importei os dados em TXT para uma tabela no banco e criei um PL/SQL para integrar os dados com o sistema. São ao todo umas 50 operações de INSERT, UPDATE, DELETE em meio a uns 20 loops no meio, umas duas dúzias de tabelas sendo alteradas e algumas subconsultas cabeludas no meio. Montei uma tabela para logar os erros e outra para logar o andamento de cada registro. Em pouco tempo – leia-se alguns dias trabalhando alucinadamente… estou com o processo todo rodando na minha base de teste. Após os primeiro 1000 registros rodarem, fiz minha estimativa de tempo par o término da operação completa… algo entre 7 e 8 dias.

Opa… pintou problema! Se isso não terminar logo não entra dimdim no caixa… bem, resolvo liberar lotes de atualização para o pessoal ir testando os dados atualizados. Bem, lá fui eu dar a má notícia para a equipe de testes, avisando que já havia um lote com mil registros que podiam ser testados.

– Ok, vamos começar a testar amanhã de manhã. Você lembrou de colocar 5 zeros á esquerda da chave primária principal?

– Não amiguinha. Quando o dado é numérico os zeros a esquerda não fazem diferença no banco de dados. Eles só aparecem na mascara de exibição da aplicação…

– Ah bom, é porque todo mundo sempre coloca os 5 zeros concatenados a esquerda. Então tudo bem!

– Fica fria. Isto só seria importante se os dados fossem do tipo texto. Como se trata de um número inteiro, não tem problema.

– Hum… deixa eu ver uma coisa aqui…

Surpresa. O sistema utilizava dados numéricos num campo do tipo CHAR(15)!!! Bem na chave primária da tabela principal. Quem é que em sã consciência armazena uma chave primária inteira como texto? Heim, heim, heim? A besta aqui não olhou este “detalhe” nas tabelas do sistema. Mais uma vez a pressa me pregou uma peça fantástica. Já lá pelas 20 horas volto para a prancheta e começo a arrumar toda a bagunça.

– O que vamos fazer amanhã a noite?
– Tentar dominar o mundo…mas podemos socar alguns devenvolvedores idiotas primeiro!!!

Compartilhe

Você pode gostar

Sobre minha saída da Timbira

Há 14 anos, durante o PGConf.Brasil 2009, lá na UNICAMP em Campinas/SP, 4 pessoas se reuniram e idealizaram a criação da primeira empresa dedicada exclusivamente

Split brain

Já tem algum tempo que eu pensava em fazer isso e chegou a hora. Este blog vai se dividir em 2 partes a partir de

plugins premium WordPress