Re: [firebase-br] Função "Copy" no Firebird
Mr.Mothman
mr.mothman em gmail.com
Seg Out 10 09:42:01 -03 2005
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
Mais detalhes sobre a lista de discussão lista