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

Responder a