[firebase-br] Collate e Character Set

Pha-Lista lista em pha.com.br
Qua Jan 19 09:01:03 -03 2005


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