Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2011, 06:56
nessemar
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 14 años
Puntos: 0
PostGis // Función que devuelve un booleano

Buenas, quería comentaros un problema con el que me estoy encontrando y que (pese a que probablemente sea una tontería) me está llevando de craneo:

Tengo una función con la que pretendo comprobar que el primer carácter de un campo textual sea 'F'. La función tiene este código:

Código:
BEGIN
	EXECUTE 'select substring(s1.'|| $2||'::text from '|| $4||' for '|| $5||') from '|| $1||' as s1 
	where s1.gid='|| $3||' and substring(s1.'|| $2||'::text from '|| $4||' for '|| $5||')='''|| $6||'''::text;';
	IF FOUND THEN
		RETURN true;
	ELSE
		RETURN false;
	END IF;
END;
Y la llamada la realizo tal que así: select devuelve_booleano('x2bis','txt', '5', '1','1','F')

La explicación de los parámetros:

/*Comprueba en el registro $3 del campo textual $2 de la tabla $1*/
/*si los $5 siguientes carácteres a la posición $4*/
/*coincide con el valor $6*/

--------------------------------------------------------------------------------------------------------------------------------------------------------------

Para el caso particular de esta query: select substring(s1.txt::text from 1 for 1) from x2bis as s1 where s1.gid=5 el resultado es 'F'

Pero la función me está devolviendo 'false' en todo momento independientemente del carácter que tenga que buscar en el parámetro 6º

¿Alguien sabe que puedo estar haciendo mal?

Gracias por la ayuda.