[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