Hola a todos!
Estoy teniendo un problema con una función en progresql 8.4:
CREATE OR REPLACE FUNCTION getLibres(varchar(20), varchar(20)) RETURNS SETOF
tabla1 AS
$BODY$
DECLARE
r tabla1%rowtype;
BEGIN
IF $2 IS NULL THEN
FOR r IN SELECT CAST($1 AS VARCHAR(255)),count(*) FROM
tabla1
WHERE tabla1.confirmada = '1' group by 1 order by 1
LOOP
RETURN NEXT r;
END LOOP;
END IF;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;
Cuando ejecuto SELECT * FROM getLibres('campo1',NULL);
Me tira el siguiente error:
ERROR: la sintaxis de entrada no es válida para integer: «campo1»
CONTEXT: PL/pgSQL function "getlibres" line 5 at bucle FOR en torno a
registros de un SELECT
Porqué me toma el campo como integer?
Gracias por su tiempo
ANA