extrais somente numero no firebird

Firebird

23/07/2008

boa tarde...


o novo firebirrd 2.1 esta otimo possui muitos recursos novos oq faz eu deixar de precisar de algumas UDF e fazer direto....mas estou com um problema e nao consigo achar a solucao.....veja


existe como eu retirar a parte numerica de uma string dentro do firebird direto...


123elton retorna apenas 123 tira letras e caracteres especiais....



tentei usar o replace para isso mas ele so aceita um aprametro por vez


tipo replace(cpf, ´.´,´´)



obrigadoo pela ajuda....


Eltontlms

Eltontlms

Curtidas 0

Respostas

Joaoshi

Joaoshi

23/07/2008

Colega, utilizando o [b:821e658970]Execute Block[/b:821e658970] do Firebird, fiz o código abaixo. Você poderá testar no IbExpert.

EXECUTE BLOCK (sCampo char(40) = :sCampo)
RETURNS (retorno varchar(40))
AS
declare nPosicao  Integer;
declare texto varchar(40);
declare letra char(1);
BEGIN
  texto = ´´;
  nPosicao = 1;
  While (nPosicao <= char_length(sCampo) ) do
    begin
      letra = substring(sCampo from nPosicao for 1);
      if (letra >= ´0´ and letra <= ´9´) then
         texto = texto||letra;
      nPosicao = nPosicao + 1;
    end

  retorno = texto;
  suspend;

END


Espero ter ajudado.


GOSTEI 0
POSTAR