[firebase-br] Collate e Character Set
Pha-Lista
lista em pha.com.br
Qua Jan 19 09:07:39 -03 2005
Completando.
Utilizando o Collate WIN_PTBR, esqueça a função UPPER, o proprio collate já é Case a Acento insensitive.
A consulta retornara o registro, utilizando:
where NOME = 'ALEMANHA'
ou
where NOME = 'Alemanha'
ou outras combinacoes
where NOME = 'aLEmaNhA'
PHA
Nova Odessa / SP - Brazil
-----Mensagem original-----
From: Pha-Lista lista em pha.com.br
Date: Wed, 19 Jan 2005 11:01:03 -0300
To: FireBase lista em firebase.com.br
Subject: Re: [firebase-br] Collate e Character Set
> 5) select * from PAIS where NOME collate WIN_PTBR = 'ALEMANHA'
> Resultado: Retornou o registro referente a Alemanha e estabeleceu
> automaticamente o seguinte PLAN:
> PLAN: (PAIS NATURAL)
>
> 6) select * from PAIS where Upper(NOME) = 'ALEMANHA' plan (PAIS index
> (RDB$PRIMARY92))
> Resultado: Erro na consulta: "o PLAN não pode ser usado para essa
> consulta"
>
> 7) select * from PAIS where NOME collate WIN_PTBR = 'ALEMANHA' plan
> (PAIS index (RDB$PRIMARY92))
> Resultado: Erro na consulta: "o PLAN não pode ser usado para essa
> consulta"
>
> Se você criar o campo com o collate WIN_PTBR, o indice será utilizado.
>
> Da forma como você fez, está convertendo os dados entre os Collate, dessa forma o indice não é utilizado, é como se você estivesse utilizando um função, o principio é o mesmo.
>
> Faço o teste:
>
> 1) Crie um novo campo.
>
> ALTER TABLE TABELA
> ADD NOME2 COLLATE WIN_PTBR;
>
> 2) Copie os dados do campo NOME para NOME2
>
> 3) Crie um indice para o campo NOME2
>
> 4) Refaça os testes, e nos passe o resultado
>
>
> PHA
> Nova Odessa / SP - Brazil
>
>
>
Mais detalhes sobre a lista de discussão lista