El 18/06/13 19:42, Luis Fernando Ortiz Vera escribió:
Apreciada Lista de ayuda, intento desarrollar una funcion en postgresql,
que me retornes un entero con los espacios contenidos en la cadena que
envio como argumento. Al hacerlo me aparece el siguiente error.
pgsql-es-ayuda@postgresql.org <mailto:pgsql-es-ayuda@postgresql.org>

El codigo del la funcion que he escrito es el siguiente:

CREATE OR REPLACE FUNCTION "public"."contarblanco" (cadena varchar)
RETURNS integer AS
$body$
DECLARE
resdo INTEGER;
BEGIN
   resdo  := 0;
   WHILE strpos( cadena, ' ') > 0 LOOP
   resdo := resdo + 1;
select cadena =  substr( cadena, strpos( cadena, ' ') + 1 , length(
cadena ) );

Aca esta tu probelma. Estas seleccionando lo que retorna la comparacion por igualdad de cadena y la subcadena de cadena luego de sacarle la parte hasta el primer espacio encontrado.

Deberias poner:

    cadena := substr( cadena, strpos( cadena, ' ') + 1 , length(cadena));

END LOOP;
RETURN resdo;
END;
$body$
LANGUAGE 'plpgsql' STABLE CALLED ON NULL INPUT SECURITY INVOKER;

Agradezco la ayuda que me puedan dar a mi solicitud.

Suerte,

--
Martín Marqués                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Reply via email to