Olá Todos, Parece haver apanas um problema com a descodificação do campo log_key_dne de alguns registros, que estão decodificados no campo cep na mesma tabela (log_logradouro).
Encontrei em http://blog.otavio.info/2008/06/banco-de-dados-dos-correios.html, uma função para PostgreSQL, postada por Allyson, que parece resolver o problema. Aí e só atualizar o campo cep com uma instrução update. cep=# select count(*) from log_logradouro; count -------- 855861 (1 row) cep=# select count(*) from log_logradouro where cep <> fncdecryptcep(log_key_dne); count -------- 114323 (1 row) cep=# UPDATE log_logradouro SET cep = fncdecryptcep(log_key_dne) WHERE cep <> fncdecryptcep(log_key_dne); UPDATE 114323 Consultando: cep=# SELECT log_logradouro.log_nome as "Logradouro", log_bairro.bai_no as "Bairro", log_localidade.loc_no as "Localidade", log_logradouro.ufe_sg as "UF", log_logradouro.cep as "CEP" FROM log_logradouro, log_bairro, log_localidade WHERE log_logradouro.bai_nu_sequencial_ini = log_bairro.bai_nu_sequencial AND log_logradouro.loc_nu_sequencial = log_localidade.loc_nu_sequencial AND log_logradouro.cep = '89280412'; Logradouro | Bairro | Localidade | UF | CEP ----------------------+--------+------------------+----+---------- Rua Gerhardt Ziesche | Centro | São Bento do Sul | SC | 89280412 (1 row) Lembrando que o campo cep, também está presente em outras tabelas. A função: Create or Replace Function fncdecryptcep(argkeydne varchar) Returns varchar AS $fncdecryptcep$ Declare decryptedcep varchar := ''; Begin For i In 1..length($1) By 2 Loop Case substr($1,i,2) When 'X8','CN','8X','NC' Then decryptedcep := decryptedcep || 1; When 'Z0','EP','0Z','PE' Then decryptedcep := decryptedcep || 2; When '1B','GR','B1','RG' Then decryptedcep := decryptedcep || 3; When '3D','ID','D3','DI' Then decryptedcep := decryptedcep || 4; When '4C','JS','C4','SJ' Then decryptedcep := decryptedcep || 5; When '2A','HQ','A2','QH' Then decryptedcep := decryptedcep || 6; When '09','FO','90','OF' Then decryptedcep := decryptedcep || 7; When 'Y7','DM','7Y','MD' Then decryptedcep := decryptedcep || 8; When '5V','BK','V5','KB' Then decryptedcep := decryptedcep || 9; When 'UG','AL','GU','LA' Then decryptedcep := decryptedcep || 0; Else Return Null; End Case; End Loop; Return decryptedcep; End; $fncdecryptcep$ Language plpgsql; Comment On Function fncdecryptcep(argkeydne varchar) Is 'Função para Descriptografar os CEPs do Banco de Dados do DNE'; Abraços Em 24 de abril de 2012 11:16, Ademir Cristiano Gabardo <[email protected]> escreveu: > SELECT * FROM log_logradouro WHERE CEP = 89280412; > > Este é o cep do meu prédio... não está no DB. > Por nome de rua tbm não "Gerhardt Ziesche" > > (Na busca dos correios)... > Busca CEP > Faça suas consultas individuais de CEP, destinadas a endereçamentos de > objetos de correspondências a serem postadas nos Correios. > 1 Logradouro(s) > Logradouro Bairro Localidade UF CEP > Rua Gerhardt Ziesche Centro São Bento do Sul SC 89280-412 > > _______________________________________________ [email protected] http://www.codeigniter.com.br http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net ---------------------------

