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:
Y la llamada la realizo tal que así: select devuelve_booleano('x2bis','txt', '5', '1','1','F')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;
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.