Hola lista:
Quiero hacer algo parecido a las siguientes funciones.
Lo que necesito realizar es lo siguiente: en la funcion "uno" recorro la tabla llamada "mitabla" la cual me llena el registro llamado "registros" a través del SELECT. "mitabla" tiene 3 campos llamados campo1, campo2, campo3, con sus respectivos datos. Una vez hecho esto necesito pasar el "registros" que posee los datos de "mitabla" como parametro a la funcion "dos", pero me sale el siguiente erros :-( :
zonaprueba=# select uno();
WARNING: Error occurred while executing PL/pgSQL function uno
WARNING: line 11 at assignment
ERROR: Attribute "registros" not found
Al parecer no se puede hacer. Si alguien puede aportar alguna idea estaria muy agradecida... Porfis, porfis ;-)
DROP FUNCTION DOS(RECORD);
CREATE FUNCTION DOS(RECORD)
RETURNS varchar AS '
DECLARE
registros_var ALIAS FOR $1;
variable varchar;
BEGIN
variable:=registros_var.campo1;
RETURN variable;
END;
' LANGUAGE 'plpgsql';
DROP FUNCTION UNO();
CREATE FUNCTION UNO ()
RETURNS VARCHAR AS '
DECLARE
registros RECORD;
llamafuncion varchar;
BEGIN
FOR registros IN
SELECT * FROM mitabla loop
END loop;
llamafuncion := dos(registros);
return llamafuncion;
END;
' LANGUAGE 'plpgsql';