PDA

Ver la Versión Completa : Funcion Trim


jafera
27-02-2014, 10:23:58
Hola a todos.

Uso Firebird 1.5.6 y leyendo los documentos sobre el mismo, veo que la función TRIM se añadió a partir de la version 2.0.

He estado buscando un ejemplo de como poder borrar los espacios en blanco a la derecha de un campo de forma masiva y no consigo dar con el resultado. En algún hilo antiguo se dice que se tiene que registrar la funcion ib_udf.dll, pero no me aclaro.

Vamos lo que necesito hacer es un update a una columna de una tabla y que me borre los espacios en blanco a la derecha de los caracteres válidos, el caso es que me mandan un fichero txt el cual importo sin problemas a una tabla temporal, pero como al sistema web de la federación accede mucha gente para tramitarse su licencia y a veces pues dejan estos espacios en blanco.

Luego lo que hago es concatenar los campos apellido1, apellido2 y nombre para obtener un solo campo más facil de manejar y claro quedan unos buñuelos que dan pena.

Basicamente necesitaría hacer esto:

SQL.Text:='UPDATE CTR0003 SET NOM_LLARG = RTRIM(COGNOM1)||'' ''||RTRIM(COGNOM2)||'', ''||RTRIM(NOM)';

Lo que recibo es un mensaje de Firebird diciendome que RTRIM es una función desconocida.

Alguna ayudita?

Gracias

Josep

Neftali [Germán.Estévez]
27-02-2014, 12:20:11
Tal vez podrías utilizar UDF's externas.
Aquí tienes una lista de algunas disponibles (http://www.ibphoenix.com/download/tools/udf) y las versiones de IB y FB sobre las cuales las puedes utilizar.

jafera
27-02-2014, 16:29:33
Gracias a tods.

Ya he entendido como se declara una función externa:

DECLARE EXTERNAL FUNCTION RTRIM
CSTRING(25) CHARACTER SET ISO8859_1
RETURNS CSTRING(25) CHARACTER SET ISO8859_1 FREE_IT
ENTRY_POINT 'IB_UDF_rtrim' MODULE_NAME 'ib_udf';

Funciona a la perfección.

A veces me cuesta un poco entender las bases, pero con vuestra ayuda dándome una guía de por donde debo tirar al final casi siempre acabo solucionándolo.

Saludos

Josep