Duduh_Capixaba Postado Julho 15, 2009 Denunciar Share Postado Julho 15, 2009 (editado) Olá pessoal!Procurei bastante na internet sobre funções de manipulação de strings no Firebird,mas só consegui encontrar procedures feitas por terceiros. Eu gostaria de trabalharcom comandos nativos do Firebird (versão 1.5). Eis minha questão:Tenho em minha base de dados uma tabela de clientes, e dentro dela um campoCNPJ_CPF. Nesse campo, possuo lançamentos de dados de várias formas, exemplos:CPF: 000.111.222-33, 000111222-33, 00011122233CNPJ: 00.111.222/3333-44, 00111222/3333-44, 001112223333-44, 00111222333344Agora entra a questão. Eu gostaria de identificar o que é CPF e o que é CNPJ, para jogarpara o meu novo campo NAT_JURIDICA um valor que identifique se o cliente é PessoaFísica ou Jurídica. Pensei em extrair apenas os números do campo CNPJ_CPF e fazer aseguinte comparação:SE TOTAL STRING DE CNPJ_CPF = 11 então CPF (NAT_JURIDICA = F)SE TOTAL STRING DE CNPJ_CPF = 14 então CNPJ (NAT_JURIDICA = J)Sei fazer isso pelo Delphi, já está até funcionando. Mas o problema é que eu tive que fazerum loop, lendo registro por registro. E numa base de dados com muitos registros, fica umpouco demorado de fazer esse processo.Sempre faço essas atualizações na base via SQL, mas me deparei com o problema de o meucampo CNPJ_CPF aceitar qualquer tipo de caracter, e não conheço uma função do Firebird queme permita excluir caracteres de uma string.Vou tentar resolver de outras formas enquanto aguardo a ajuda de um colega.Abraço a todos Editado Julho 15, 2009 por Duduh_Capixaba Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 quintelab Postado Julho 15, 2009 Denunciar Share Postado Julho 15, 2009 Acredito que você precisará de uma UDF que contenha o comando Replace, deve ter várias na net, removendo os caracteres de /-. e outros vai sobrar somente os números, ae basta ver o tamanho dos valores.Abraços... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Duduh_Capixaba Postado Julho 15, 2009 Autor Denunciar Share Postado Julho 15, 2009 É, pelo que pesquisei, não vou ter outra auternativa mesmo.Vou procurar uma UDF na net, e tendo sucesso, posto aqui.Obrigado pela resposta, Quintelab! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Duduh_Capixaba Postado Julho 15, 2009 Autor Denunciar Share Postado Julho 15, 2009 Só passando pra dizer que encontrei uma UDF (tbudf) com muitas funções interessantes, inclusive,a que parcialmente resolveu meu problema. Consegui o que eu queria, mas meu chefe não gostoumuito da idéia de ter que atualizar as bases de dados de todos os clientes =\ e preferiu a ferramentaque desenvolvi no Delphi, que lê registro por registro.Aceito outras sugestões. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Duduh_Capixaba
Olá pessoal!
Procurei bastante na internet sobre funções de manipulação de strings no Firebird,
mas só consegui encontrar procedures feitas por terceiros. Eu gostaria de trabalhar
com comandos nativos do Firebird (versão 1.5). Eis minha questão:
Tenho em minha base de dados uma tabela de clientes, e dentro dela um campo
CNPJ_CPF. Nesse campo, possuo lançamentos de dados de várias formas, exemplos:
CPF: 000.111.222-33, 000111222-33, 00011122233
CNPJ: 00.111.222/3333-44, 00111222/3333-44, 001112223333-44, 00111222333344
Agora entra a questão. Eu gostaria de identificar o que é CPF e o que é CNPJ, para jogar
para o meu novo campo NAT_JURIDICA um valor que identifique se o cliente é Pessoa
Física ou Jurídica. Pensei em extrair apenas os números do campo CNPJ_CPF e fazer a
seguinte comparação:
SE TOTAL STRING DE CNPJ_CPF = 11 então CPF (NAT_JURIDICA = F)
SE TOTAL STRING DE CNPJ_CPF = 14 então CNPJ (NAT_JURIDICA = J)
Sei fazer isso pelo Delphi, já está até funcionando. Mas o problema é que eu tive que fazer
um loop, lendo registro por registro. E numa base de dados com muitos registros, fica um
pouco demorado de fazer esse processo.
Sempre faço essas atualizações na base via SQL, mas me deparei com o problema de o meu
campo CNPJ_CPF aceitar qualquer tipo de caracter, e não conheço uma função do Firebird que
me permita excluir caracteres de uma string.
Vou tentar resolver de outras formas enquanto aguardo a ajuda de um colega.
Abraço a todos
Editado por Duduh_CapixabaLink para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.