martes, 5 de febrero de 2013

Quitar tildes y convertir a mayúsculas en PostgreSQL

Tuve la necesidad de convertir un campo de texto a mayúsculas pero al hacerlo usando la función UPPER tenia un problema; me convertía todas las letras a mayúsculas excepto las que tenían tildes o diéresis.

Por ejemplo 

Configuración    usando solamente UPPER me lo dejaba como CONFIGURACIóN

Para corregir este error utilice una función adicional denominada TRANSLATE

Al final mi consulta quedo de la siguiente manera:

UPDATE sci.tct_auxiliar SET  nombre_auxiliar = upper translate (nombre_auxiliar, 'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜñ', 'aeiouAEIOUaeiouAEIOUÑ') ) ;

Donde sci.tct_auxiliar es el nombre de la tabla
nombre_auxiliar es el campo que quiero actualizar a mayúsculas y sin tilde
upper la función que me convierte a mayúsculas y 
la función que me convierte las letras con tilde a letras sin tilde

Primero quitamos las tildes al campo nombre_auxiliar. luego convertimos a mayúsculas y finalmente asignamos el valor al campo nombre_auxiliar.

El resultado final de Configuración    convertido es CONFIGURACION

Espero les sea útil.

No hay comentarios:

Publicar un comentario