2009/3/11 [email protected] <[email protected]>:
> Também dá pra utilizar to_ascii
>
> select to_ascii('açucar é doce');
> to_ascii
> ---------------
> acucar e doce
> (1 row)
>
>
> http://pgdocptbr.sourceforge.net/pg80/functions-string.html
>
Não se esqueçam que a função to_ascii() só funciona com os encodings
LATIN1, LATIN2, LATIN9 e WIN1250.
Se, por ex., você estiver usando utf-8 uma solução é usar o
translate, como nessa função:
CREATE OR REPLACE FUNCTION sem_acento(text) RETURNS text AS $$
SELECT translate($1,
'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC');
$$ LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
Repare que não estão contemplados todos os caracteres acentuados
(creio que os do português estão), mas, aí, é só uma questão de
complementar as listas acima (caracteres acentuados e os
correspondentes não acentuados).
Dependendo do conteúdo de seu banco de dados pode ser que você
necessite tratar, por ex. o n com til, s com cedilha, os com caron (um
circunflexo invertido), os com barra etc.
Se você utilizar árabe, hangul ou chinês (entre outras línguas) não
tenho a menor ideia do comportamento esperado para esta função.
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral