Re: error en funcion

From: Marco Vinicio Jimenez Rojas <viniciojr(at)gmail(dot)com>
To: Rodrigo Gonzalez <rjgonzale(at)estrads(dot)com(dot)ar>
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Alejandro Carrillo <fasterzip(at)yahoo(dot)es>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: error en funcion
Date: 2011-12-07 22:31:29
Message-ID: CA+bgTXBKPfdDiNUuX2RxZTWb2-X81d-GLr7D-+GGpfeQ+RP_-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

*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
<rjgonzale(at)estrads(dot)com(dot)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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro Carrillo 2011-12-07 22:55:38 Re: error en funcion
Previous Message Rodrigo Gonzalez 2011-12-07 22:14:13 Re: error en funcion