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:
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.                                     

Responder a