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';





Nuevo MSN Messenger Una forma rápida y divertida de enviar mensajes