Nao diferenciar nas pesquisa em Oracle igual a Firebird
No firebird uso um collete que nao diferencia nas pesquisas Strings com maiúsculo e minúsculo. Alguem sabe como fazer isso a nível do Oracle ?
Pesquisei na internet mas só encontrei que a solução é fazer UPPER, aí nesse caso eu teria que mudar todo o meu sistema... Se a unica solução for via Upper, alguem sabe se isso vai ficar mais lenta a pesquisa ?
Pesquisei na internet mas só encontrei que a solução é fazer UPPER, aí nesse caso eu teria que mudar todo o meu sistema... Se a unica solução for via Upper, alguem sabe se isso vai ficar mais lenta a pesquisa ?
Mcd
Curtidas 0
Respostas
Brunodsr
21/07/2008
A resposta é sim.
Quando vc usa uma função ao invés do próprio campo, os índices não são usados. Isso significa uma perda significativa de performance.
Se o seu campo não tem nenhum índice, então relaxa. Usa o UPPER mesmo.
Eu acho melhor vc tratar a nível de aplicação veio. Teus dados estão gravados em caixa alta ou aceita qualquer tipo de formatação?
Posta aí..
Quando vc usa uma função ao invés do próprio campo, os índices não são usados. Isso significa uma perda significativa de performance.
Se o seu campo não tem nenhum índice, então relaxa. Usa o UPPER mesmo.
Eu acho melhor vc tratar a nível de aplicação veio. Teus dados estão gravados em caixa alta ou aceita qualquer tipo de formatação?
Posta aí..
GOSTEI 0
Powerslave7
21/07/2008
Pois é... O upper degrada a performance sim cara, mas é uma solução viável se for uma pesquisa simples... Se envolver um processamento maior (tipo uma pesquisa em loop), aí complica....
Mas o seu caso da pra resolver com isso:
Meu caso é diferente e eu não sei se o Oracle faz isso.
Seguinte:
Existe como o Oracle tratar, por exemplo, ´O´ e ´Ó´ como iguais?
O MySQL eu sei que faz isso, mas o Oracle não... Ou eu acho que não...
Abraço!
Mas o seu caso da pra resolver com isso:
´WHERE UPPER(campo) LIKE ´ + QuotedStr(UpperCase(Edit.Text) + ¬);
Meu caso é diferente e eu não sei se o Oracle faz isso.
Seguinte:
Existe como o Oracle tratar, por exemplo, ´O´ e ´Ó´ como iguais?
O MySQL eu sei que faz isso, mas o Oracle não... Ou eu acho que não...
Abraço!
GOSTEI 0
Mcd
21/07/2008
Bruno,
Atualmente meus dados aceitam qualquer tipo de formatação, tanto maísculo como minúsculo e a base é muito grande,,, existe um índice para esse campo que estou pesquisando, entao pela sua resposta fará um FULLSCAN... isso é pessimo... acho que vou mesmo é tratar na digitação e aproveitar o recurso de banco...
Atualmente meus dados aceitam qualquer tipo de formatação, tanto maísculo como minúsculo e a base é muito grande,,, existe um índice para esse campo que estou pesquisando, entao pela sua resposta fará um FULLSCAN... isso é pessimo... acho que vou mesmo é tratar na digitação e aproveitar o recurso de banco...
GOSTEI 0