[firebase-br] Função "Copy" no Firebird
Felipe Giotto
felipe em metasoftware.com.br
Seg Out 10 10:22:51 -03 2005
Olá, Mr.Mothman!!
Só gostaria de apontar uma correção na sua explicação!! Para extrair uma
substring nativamente no FB, utilize dessa forma:
SELECT SUBSTRING(CAMPO FROM 2 FOR 5) FROM TABELA
onde CAMPO pode ser também uma string fixa, 2 é o caracter de início da
substring e 5 é o tamanho da substring!! Eu não sei de onde veio a
função SUBSTR que você citou no seu post, provavelmente é de alguma UDF,
correto? A função nativa do FB que extrai um trecho de uma string é a
SUBSTRING!! :D
Espero ter ajudado,
Felipe Giotto ;-)
Mr.Mothman wrote:
>Caros Rainniery / Marcelo,
>
> Rainniery: Na realidade a sintaxe correta da função externa SUBSTR é
>a seguinte:
>
> SUBSTR (<expressão>, <inicio>, <tamanho>)
>
> onde:
>
> <expressão> é um dado shortstring (string curto, de comprimento 1
>até 255 bytes);
> <inicio> é um smallint (inteiro pequeno, de 1 até 255);
> <tamanho> é um smallint (inteiro pequeno, de 1 até 255)
>
> Portanto, para funcionar o seu exemplo, o correto seria fazer:
>
> ... SUBSTRING ('FLAMENGO', 4, 5) ...
>
> Beleza?
>
> Marcelo: até onde eu saiba, é só com UDF mesmo...
>
> Na FBUDF, existe uma função chamada SRIGHT, que faz isso.
>
> Sua sintaxe é:
>
> SRIGHT (<expressão>, <tamanho>)
>
> onde:
>
> <expressão> é um dado varchar (100); e
> <tamanho> é um smallint (inteiro pequeno, de 1 até 100).
>
> O dado retornado é um Varchar de 100 bytes.
>
> Exemplo:
>
> SELECT SRIGHT ('O TIMAO É O CORINTHIANS', 11) from RDB$DATABASE;
>
> Retornaria o time que, como todo mundo sabe, vai ganhar o
>Brasileirão (hehehe, desculpe o off neste ponto, mas não podia perder
>o gancho...).
>
> Duas observações:
>
> 1) RDB$DATABASE seria, no FireBird, o equivalente à tabela DUAL do Oracle;
> 2) Você poderia perguntar: se existe uma funcão SRIGHT, porque não
>existe uma função SLEFT? Aí eu te respondo: porque seria redundante...
>Concorda que, sabendo o tamanho que você quer da esquerda para a
>direita você poderia utilizar a função SUBSTR, de 1 até o tamanho que
>você precisa? Então...
>
> Espero ter podido ajudar.
>
> [ ]'s a todos.
>
> Mr.Mothman
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
--
Felipe Luiz Christófolli Giotto
Meta Tecnologia em Software, Ltda
Mais detalhes sobre a lista de discussão lista