Hola amigos.
Buen día...

me encuentro en una situación en la que pido su apoyo... ya he indagado en
la web y no he encontrado información al respecto...

He creado una función en la cual necesito recibir los registros de una
tabla (incluso a través de una tabla temporal)... en la definición lo tengo
de la siguiente forma...

CREATE OR REPLACE FUNCTION promedio(IN tablavalores public.valores,
simulador boolean)
  RETURNS double precision[] AS
$BODY$
DECLARE
promedio DOUBLE PRECISION;
 contador INTEGER;
registro RECORD;

BEGIN
                 promedio = 0.00;
FOR registro IN
SELECT valor FROM tablavalores;
 LOOP
contador = contador + 1;
promedio = promedio + registro.valor;
 END LOOP;

promedio = promedio / contador;

         return promedio;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION promedio(public.valores, boolean)
  OWNER TO postgres;



Al intentar invocarlo hago lo siguiente...

create temp table v (like public.valores);
select promedio(v, true);

y este ultimo me manda un error en el que dice que "v" (la tabla temporal)
no es una columna...


recurro a su experiencia para saber si mi error es al invocar o al declarar
la función...

Agradezco de antemano sus comentarios.


Atte. Mario Jiménez Carrasco.

Responder a