Tip: Eliminar tildes desde PostgreSQL
Por: alex | 12 Marzo 2007 | Ver comentarios |
Una forma sencilla para eliminar las tildes de un texto en PostgreSQL, es utilizar la función to_ascii
buayacorp=> select lower(to_ascii('PERÚ')) = 'peru';
?column?
----------
t
(1 fila)Esta función, como se puede apreciar en el manual de PostgreSQL, sólo soporta las siguientes codificaciones: LATIN1, LATIN2, LATIN9 y WIN1250.
Siguiendo la tradición, a continuación una función básica que elimina las tildes de las urls.
CREATE OR REPLACE FUNCTION sanitize_url(VARCHAR)
RETURNS VARCHAR AS $$
SELECT trim('-' from regexp_replace(lower(to_ascii($1)), '[ -]+', '-', 'g'));
$$ language sql;El código mostrado, primero elimina las tildes del texto que se pase como parámetro, lo convierte a minúsculas y en seguida reemplaza cualquier ocurrencia de -uno o más- espacios o guiones por otro guión, finalmente elimina cualquier guión que haya quedado al inicio y final del texto.

