[firebase-br] Extrair apenas numero de um string [RESOLVIDO]
Wellington Melo
wellmsilva em gmail.com
Qui Jul 22 16:27:01 -03 2010
Boa tarde a todos,
Encontrei a solução para a pergunta acima;
Alterei a procedure e ficou assim agora:
SET TERM ^ ;
CREATE OR ALTER PROCEDURE PROC_DIGITOS (
TEXTO VARCHAR(100))
RETURNS (
RETORNO VARCHAR(100))
AS
DECLARE VARIABLE CH CHAR(1);
BEGIN
Retorno = '';
WHILE (Texto IS NOT NULL AND Texto <> '') DO
BEGIN
Ch = SUBSTRING(Texto FROM 1 FOR 1);
IF (Ch >= '0' AND Ch <= '9') THEN
Retorno = Retorno || Ch;
Texto = SUBSTRING(Texto FROM 2 FOR 100);
END
SUSPEND;
END^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE PROC_DIGITOS TO SYSDBA;
Em 21 de julho de 2010 18:52, Kelver Merlotti <kmerlotti em gmail.com>escreveu:
> O 1.5 não possui nativamente algumas das funções utilizadas, que surgiram
> apenas a partir do 2.1
> Porém, se não me engano, todas as funções estão disponíveis na UDF que
> acompanha a instalação, faltando somente declara-las no BD.
> Dê uma pesquisada sobre isso.
> Abraços!
>
> Kelver Merlotti
> Coordenador Editorial do Portal www.ActiveDelphi.com.br
> Contato: kelver em activedelphi.com.br
> Google: kmerlotti em gmail.com
> Twitter: http://twitter.com/kmerlotti
> Tem um segundo? Então, dá uma olhadinha nisso:
> Um site de publicidades, de Portugal, está pagando em euros (quase 3x
> mais que em reais) pra quem estiver disposto a:
> * Ler anúncios
> * Visitar sites
> * Clicar em banners
> * Navegar na NET
> * Ler e-mails
> * Convidar novos usuários
> O pagamento pode ser feito de várias formas!
> Registra lá. Não custa nada!!! ;-)
> http://www.publipt.com/pages/index.php?refid=kmerlotti
>
>
> On Wed, Jul 21, 2010 at 17:50, Wellington Melo <wellmsilva em gmail.com>
> wrote:
>
> > Boa tarde a todos,
> > Gostaria de saber se alguem sabe como criar a procedure abaixo no
> > firebird 1.5 :
> >
> > SET TERM ^;
> > CREATE OR ALTER PROCEDURE EXTRAI_INTEIRO(
> > pTEXTO VARCHAR(100)
> > )RETURNS(
> > RESULTADO VARCHAR(100)
> > )AS
> > DECLARE VARIABLE INDICE INTEGER;
> > DECLARE VARIABLE CARACTER CHAR(1);
> > begin
> > IF (pTEXTO IS NULL) THEN
> > RESULTADO = '';
> > ELSE
> > BEGIN
> > RESULTADO = '';
> > INDICE = 1;
> > WHILE (INDICE <= CHAR_LENGTH(pTEXTO)) DO
> > BEGIN
> > CARACTER = CAST(SUBSTRING(pTEXTO FROM INDICE FOR 1) AS CHAR(1));
> > IF (CARACTER BETWEEN '0' AND '9') THEN
> > RESULTADO = RESULTADO||CARACTER;
> > INDICE = INDICE + 1;
> > END
> > END
> > suspend;
> > end^
> >
> > Ela foi criada no Firebird 2.5 e funcionou perfeitamente mas quando vou
> > criar no 1.5 não.
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista