Fórum Como fazer este update #325430
16/07/2006
0
Estou com um problema, no campo do CNPJ do cadastro de clientes do meu sistema, pois ele foi cadastrado da seguinte forma #[color=red:70f77bf937][b:70f77bf937]-[/b:70f77bf937][/color:70f77bf937][color=red:70f77bf937][b:70f77bf937]-[/b:70f77bf937][/color:70f77bf937]/-
só que eu gostaria de trocar os dois primeiros (-), por (.), ficando assim [color=red:70f77bf937][b:70f77bf937].[/b:70f77bf937][/color:70f77bf937][color=red:70f77bf937][b:70f77bf937].[/b:70f77bf937][/color:70f77bf937]/- alguem tem uma dica de como fazer isto atraves de um [color=green:70f77bf937]update[/color:70f77bf937].
Exemplo
update CLIENTES
set CNPJ_CLIENTE = ....................................
Desde ja muito obrigado.
Luciano Ramos
Luciano.sul
Curtir tópico
+ 0Posts
17/07/2006
Motta
O melhor seria guardar a cgc/cpf sem formatação.
Gostei + 0
17/07/2006
Luciano.sul
O meu banco e FireBird. E somente agora eu descobri que seria melhor nao salvar o cnpj com o formato, mas agora e tarde demais.
Obrigado.
Luciano Ramos
Gostei + 0
17/07/2006
Motta
No Oracle seria :
update tabela
set cgc = replace(cgc,´-´,´.´)
Troca todo traço por ponto.
Tente ajuda no fórum de FB/IB , deve ser simples.
Gostei + 0
17/07/2006
Steve_narancic
Gostei + 0
17/07/2006
Luciano.sul
Obrigado
Luciano Ramos
Gostei + 0
17/07/2006
Luciano.sul
Obrigado
Luciano Ramos
Gostei + 0
17/07/2006
Leitorbinario
por que proprietarias?
Gostei + 0
18/07/2006
Micheus
faça um teste com este select antes de utilizar o update mais abaixo:
select CNPJ_CLIENTE, (substring(CNPJ_CLIENTE from 1 for 2)||´.´||substring(CNPJ_CLIENTE from 4 for 3)||´.´||substring(CNPJ_CLIENTE from 8 for 11)) CNPJ_CLIENTE_NOVO from CLIENTES
Se o resultado foi o esperado, então execute o update a seguir:
update CLIENTES set CNPJ_CLIENTE = substring(CNPJ_CLIENTE from 1 for 2)||´.´||substring(CNPJ_CLIENTE from 4 for 3)||´.´||substring(CNPJ_CLIENTE from 8 for 11) where substring(CNPJ_CLIENTE from 3 for 1) = ´.´
Ainda não é tarde demais. Se quizer removê-los, basta alterar o update acima de modo a retirar os caracteres ´-´ e ´/´:
update CLIENTES set CNPJ_CLIENTE = substring(CNPJ_CLIENTE from 1 for 2)||substring(CNPJ_CLIENTE from 4 for 3)||substring(CNPJ_CLIENTE from 8 for 3)||substring(CNPJ_CLIENTE from 12 for 4)||substring(CNPJ_CLIENTE from 17 for 2) where substring(CNPJ_CLIENTE from 3 for 1) = ´.´
Depois, no seu programa, modifique todas as máscaras de modo a inibir a gravação dos mesmos. Basta substituir o 1 por 0 nos maskedit´s. Ex.: ´#../-;[b:1239a8a606][color=red:1239a8a606]1[/color:1239a8a606][/b:1239a8a606];_´ por ´../-;[b:1239a8a606][color=red:1239a8a606]0[/color:1239a8a606][/b:1239a8a606];_´
[]s
Gostei + 0
18/07/2006
Micheus
- está [i:17a5db12e0]where substring(CNPJ_CLIENTE from 3 for 1) =[/i:17a5db12e0] [b:17a5db12e0][color=red:17a5db12e0]´.´[/color:17a5db12e0][/b:17a5db12e0]
- e deveria ser [i:17a5db12e0]where substring(CNPJ_CLIENTE from 3 for 1) =[/i:17a5db12e0] [b:17a5db12e0][color=red:17a5db12e0]´-´[/color:17a5db12e0][/b:17a5db12e0]
[]s
Gostei + 0
18/07/2006
Motta
por exemplo o decode do Oracle.
Assim o sql só funciona para um bd.
Gostei + 0
18/07/2006
Luciano.sul
E isto ai.
Obrigado
Luciano Ramos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)