2009/10/26 Osvaldo Kussama <osvaldo.kuss...@gmail.com>:
> 2009/10/26 Leandro DUTRA <leandro.gfc.du...@gmail.com>:
>> 2009/6/3 Osvaldo Kussama <osvaldo.kuss...@gmail.com>:
>>> CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
>>>    SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
>>>                        'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC');
>>> $$
>>> LANGUAGE sql IMMUTABLE STRICT;
>>>
>>> Ficaria assim:
>>> SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);
>>
>> Muito obrigado, quebrou um galho.
>>
>> Pergunta idiota: qual seria a solução ideal, quero dizer, aquela que
>> deveria ser implantada no PostgreSQL 8.5 e ir para o padrão ISO
>> SQL:2010?
>>
>
>
> Olá Leandro,
>
> Acho bem complicada tal solução.
> Veja que para alguns dos encodings Latin-x existe a função to_ascii
> que transforma caracteres acentuados em não acentuados, mas para utf-8
> esta função não se aplica.
>
> A questão é: o que são caracteres acentuados em línguas diferentes
> daquelas representadas pelos latin-x (mas representadas no utf-8)?
> Será que existe nestas línguas algum tipo de correspondência
> "acentuado - não acentuado"?
>
> Talvez algum linguista possa sugerir uma solução plausível.
>



Só para complementar:
existem soluções que utilizam os métodos existentes em linguagens como
perl e python. Uma delas você pode ver em:
http://wiki.postgresql.org/wiki/Strip_accents_from_strings

Osvaldo
PS. Nestes casos também não sei quais os critérios utilizados para
línguas não contempladas nos encodings latin-x.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a