No Firebird, este problema pode ser resolvido facilmente usando o comando UPPER, como proceder?
Simples…
Imagine uma situação assim:
Tabela contatos:
Campo | Valor |
Nome | José |
Apelido | Zé |
Queremos selecionar este contato, mas podemos ter um usuário preguiçoso que vai digitar o seguinte na consulta:
SELECT * FROM contatos WHERE Nome=‘josé’ AND Apelido=‘zé’;
O que esta consulta retornará no Firebird?
Nada… Pois ele é case-sensitive, ou seja, José é diferente de jOsé que é diferente de josé… Ele diferencia letra maiúscula de letra minúscula.
Vamos resolver este problema?
SELECT * FROM contatos WHERE UPPER(Nome)=UPPER(‘José’) AND UPPER(Apelido)=UPPER(‘zé’);
A consulta retornará os valores que queríamos.
O que este comando faz?
Ele vai converter todos os caracteres do campo selecionado em UPPER() para maiúsculos e na string de comparação idem. No nosso caso ele converteu a string original que era José para JOSÉ e a string de consulta que era josé para JOSÉ, o mesmo para Zé e zé.
Deste jeito, você consegue “burlar” o problema de sensibilidade a caixa do
Firebird, espero ter ajudado.
Até a próxima.
0 comentários:
Postar um comentário