*ya logre resolver el asunto de la funcion haciendo unas correcciones en
las sugerencias que me dio alvaro y quitando esa asignacion. pero mi
pregunta es. si el insert asi como esta me devuelve el valor del seria con
el returnig como hago para capturarlo en una variable?*



*insert into pago_viajes(transportista, fecha,monto_total,monto_vales,
                     monto_pago, estado) values(transp,
fecha,montoT,montoV, montoP,
                       estado)returning idpago_viajes;*



*Dejo aqui la estructura de la tabla*

*CREATE TABLE pago_viajes
(
  idpago_viajes serial NOT NULL,
  transportista integer NOT NULL,
  fecha date,
  monto_total numeric,
  monto_vales numeric,
  monto_pago numeric,
  estado integer,
  CONSTRAINT pago_viajes_pkey PRIMARY KEY (idpago_viajes)
)*


*muestro aqui la funcion tal como esta y que si funciona pero no puedo
campurar el serial*

*create function ingresoPago(transp integer, fechax date, montoT integer,
montoV integer,
montoP integer, estadox integer) returns integer as
$BODY$
DECLARE viaje integer = 0;
begin
insert into pago_viajes(transportista, fecha,monto_total,monto_vales,
monto_pago, estado) values(transp, fechax,montoT,montoV, montoP,
estadox)returning idpago_viajes;

return viaje;
end;
$BODY$
language 'plpgsql';*








El 7 de diciembre de 2011 16:14, Rodrigo Gonzalez
<rjgonz...@estrads.com.ar>escribió:

> On 12/07/2011 06:53 PM, Alvaro Herrera wrote:
>
>> Excerpts from Alejandro Carrillo's message of mié dic 07 18:23:47 -0300
>> 2011:
>>
>>> no debería ser:
>>>
>>> viaje := insert into pago_viajes(transportista,
>>> fecha,monto_total,monto_vales,
>>>                      monto_pago, estado) values(transp,
>>> fecha,montoT,montoV, montoP,
>>>                        estado)returning idpago_viajes;
>>>
>>> faltan los 2 puntos para la asignación del campo serial
>>>
>> Tanto = como := sirven para la asignación en plpgsql.
>>
>>  Que yo sepa insert no devuelve...
>
> tenes que cambiar por
>
>
> insert into pago_viajes(transportista, fecha,monto_total,monto_vales,
>                     monto_pago, estado) values(transp,
> fecha,montoT,montoV, montoP,
>                       estado) returning idpago_viajes into viaje;
>
> O sea, usar into<variable>
>
> Saludos
>
> Rodrigo
>
>
>


-- 

-----------------------
MVJR

Responder a