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