Sencillo script para crear una función de usuario dentro de Informix, hay que tener en cuenta que a partir de la versión 10 de Informix ya no hay soporte para el comando CREATE FUNCTION, por eso este código funciona a partir de la versión 10+.
/* Editar este archivo con codificación UTF-8 */
/* DROP PROCEDURE mibasededatos:fun_quitar_acentos; */
CREATE PROCEDURE mibasededatos:fun_quitar_acentos (CADENA lvarchar)
RETURNING lvarchar;
DEFINE TempString lvarchar;
LET TempString = CADENA;
LET TempString = REPLACE(TempString, 'à', 'a');
LET TempString = REPLACE(TempString, 'è', 'e');
LET TempString = REPLACE(TempString, 'ì', 'i');
LET TempString = REPLACE(TempString, 'ò', 'o');
LET TempString = REPLACE(TempString, 'ù', 'u');
LET TempString = REPLACE(TempString, 'À', 'A');
LET TempString = REPLACE(TempString, 'È', 'E');
LET TempString = REPLACE(TempString, 'Ì', 'I');
LET TempString = REPLACE(TempString, 'Ò', 'O');
LET TempString = REPLACE(TempString, 'Ù', 'U');
LET TempString = REPLACE(TempString, 'ñ', 'n');
LET TempString = REPLACE(TempString, 'Ñ', 'n');
LET TempString = REPLACE(TempString, 'á', 'a');
LET TempString = REPLACE(TempString, 'é', 'e');
LET TempString = REPLACE(TempString, 'í', 'i');
LET TempString = REPLACE(TempString, 'ó', 'o');
LET TempString = REPLACE(TempString, 'ú', 'u');
LET TempString = REPLACE(TempString, 'Á', 'A');
LET TempString = REPLACE(TempString, 'É', 'E');
LET TempString = REPLACE(TempString, 'Í', 'I');
LET TempString = REPLACE(TempString, 'Ó', 'O');
LET TempString = REPLACE(TempString, 'Ú', 'U');
LET TempString = REPLACE(TempString, 'ç', 'c');
LET TempString = REPLACE(TempString, 'Ç', 'C');
RETURN TempString;
END PROCEDURE;
/* comprobaciones */
execute procedure fun_quitar_acentos('Prueba: áéíóú Nñ ÁÉÍÓÚ');
SELECT descripcion, fun_quitar_acentos(descripcion) AS desc_sin_acentos FROM mi_tabla ORDER BY descripcion;
Este script va a crear una función de usuario dentro de Informix
Espero que les sea de utilidad